OpenCV笔记(九)——更多的形态学变换
Erode和Dilate是基本的形态学运算,根据这两种运算,我们能够组成更多形态学运算。
一、开运算 Openning
dst = open(src, element) = dilate(erode(src, element))
开运算就是将一幅图像先腐蚀再膨胀,主要作用是移除白色的小区域。
二、闭运算 Closing
dst = close(src, element) = erode(dilate(src, element))
闭运算就是将一幅图像先膨胀再腐蚀,主要作用是移除黑色的小区域。
三、形态学梯度运算 Morphological Gradient
dst = morphgrad(src, element) = dilate(src, element) - erode(src, element)
形态学梯度运算,以膨胀的图像减去腐蚀的图像,主要作用是找到物体的轮廓。
四、Top Hat
dst = tophat(src, element) = src - open(src, element)
暂时不清楚。
五、Black Hat
dst = blackhat(src, element) = close(src, element) - src
暂时不清楚。
OpenCV中定义了完成这些操作的函数:
void morphologyEx(InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor=Point(-1, -1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultValue())
参数op指定了要进行的形态学操作,MORPH_OPEN开运算,MORPH_CLOSE闭运算,MORPH_GRADIENT形态学梯度运算,MORPH_TOPHAT tophat运算,MORPH_BLACKHAT blackhat运算。