又到了每個禮拜最期待的課,星期五的型態影像學,老師這次教了影像侵蝕跟擴張,然後有個叫作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() + "維陣列"); }
結果圖
他可以正確顯示出他是屬於幾維的陣列,這樣就可以初始化一個int[,] array = new int[n,n]的2維陣列,打到這裡我發現我錯了,因為任何形狀的se,絕對可以用2維陣列來表示...,因為是2D的,如果是3D可能就需要3維的陣列,不過...文章都打到這裡了,還是發表一下吧,可以給任何需要的人看。
全站熱搜
留言列表