名称 |
标识符 |
作用 |
原理 |
腐蚀 |
MORPH_ERODE |
||
膨胀 |
MORPH_DILATE |
||
开运算 |
MORPH_OPEN |
消除细白点 |
先腐蚀后膨胀 |
闭运算 |
MORPH_CLOSE |
消除小黑洞 |
先膨胀后腐蚀 |
形态学梯度 |
MORPH_GRADIENT |
保留边缘轮廓 |
膨胀图-腐蚀图 |
顶帽 |
MORPH_TOPHAT |
突出亮轮廓 |
原图-开运算图 |
黑帽 |
MORPH_BLACKHAT |
突出暗轮廓 |
闭运算图-原图 |
函数:morphologyEx( InputArray src, OutputArray dst,
int op,表示形态学运算的类型,如上表所示
InputArray kernel,内核,默认3*3.通常用getStructuringElement定义内核。
Pointanchor=Point(-1,-1),锚点位置,默认位于中心
int iterations=1,迭代次数
int borderType=BORDER_CONSTANT,
constScalar&borderValue=morphologyDefaultBorderValue());
getStructuringElement(内核形状,内核尺寸,锚点位置);
矩形——MORPH_RECT
十字形——MORPH_CROSS
椭圆形——MORPH_ELLIPSE
【例】
//定义核
Mat element=getStructuringElement(MORPH_RECT,Size(15,15)),blackhat;
//进行形态学操作
morphologyEx(r_g,blackhat,MORPH_BLACKHAT,element);
namedWindow("blackhat");
imshow("blackhat",blackhat);