getStructuringElement函數會返回指定形狀和尺寸的結構元素。
Mat getStructuringElement(int shape, Size esize, Point anchor = Point(-1, -1));
這個函數的第一個參數表示內核的形狀,有三種形狀可以選擇。
矩形:MORPH_RECT;
交叉形:MORPH_CROSS;
橢圓形:MORPH_ELLIPSE;
第二和第三個參數分別是內核的尺寸以及錨點的位置。一般在調用erode以及dilate函數之前,先定義一個Mat類型的變量來獲得getStructuringElement函數的返回值。對於錨點的位置,有默認值Point(-1,-1),表示錨點位於中心點。element形狀唯一依賴錨點位置,其他情況下,錨點只是影響了形態學運算結果的偏移。
getStructuringElement函數相關調用如下:
1 int g_nStructElementSize = 3; //結構元素(內核矩陣)的尺寸
2 Mat element = getStructuringElement(MORPH_RECT,Size(g_nStructElementSize,g_nStructElementSize));
調用之后,調用膨脹與腐蝕函數的時候,第三個參數值保存了getStructuringElement返回值的Mat類型變量。也就是element變量。
erode( src, dst, element );