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 );