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运算。

 

posted @ 2014-11-28 23:45  nipan  阅读(254)  评论(0编辑  收藏  举报