又到了每個禮拜最期待的課,星期五的型態影像學,老師這次教了影像侵蝕跟擴張,然後有個叫作SE(Structuring Element)的東西,可以翻成結構元素或構成元素,它有點像是四鄰居或是八鄰居的mask(遮罩),所以在呼叫副程式的時候,可以傳入一個"泛型"(任何型態)的遮罩,然後做運算。

 

  剛剛開了一個新的C#來試驗,如何取得泛型的陣列維度,程式如下:

 

static void Main(string[] args)
{
    //int[] se = new int[]
    //{
    //    3,3,3,3,3
    //};

    int[,] se = new int[,]
    {
        {3,3,3,3},
        {3,3,3,3},
        {3,3,3,3},
        {3,3,3,3}
    };

    Type type = se.GetType();

    fun(type, se);

    Console.Read();
}

static void fun(Type type, object se)
{
    Console.WriteLine(type.GetArrayRank() + "維陣列");
}

 

結果圖

取得陣列的維度.png

他可以正確顯示出他是屬於幾維的陣列,這樣就可以初始化一個int[,] array = new int[n,n]的2維陣列,打到這裡我發現我錯了,因為任何形狀的se,絕對可以用2維陣列來表示...,因為是2D的,如果是3D可能就需要3維的陣列,不過...文章都打到這裡了,還是發表一下吧,可以給任何需要的人看

arrow
arrow
    全站熱搜

    小賢 發表在 痞客邦 留言(0) 人氣()