OpenCV2.x自学笔记——形态学运算

时间:2023-11-10 18:15:56

名称

标识符

作用

原理

腐蚀

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