OPENCV 中 腐蚀和膨胀的原理

腐蚀原理:

假设原图像中有一个前景物体,那么我们用一个结构元素去腐蚀原图的过程是这样的:遍历原图像的每一个像素,然后用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用这个最小值替换当前像素值。腐蚀的结果使得原来的图像缩小一圈

img_erode = cv2.erode(src, kernel, iterations=1)  # 腐蚀 src表示输入的图片, kernel表示方框的大小, iteration表示迭代的次数

1.用结构元素B扫描图像X的所有像素点(以B的原点为坐标,对应A的各个像素点进行扫描),用结构元素B与X覆盖的二值X图像做 “与”操作(也就是B覆盖X的这一区域每个相对应的点做与操作)。

2.如果结构元素B为黑色的点,图像A相对应的点都为黑色,则该点的像素为黑色,否则为白色。



 

用矩阵B腐蚀X的结果如下所示

 



膨胀原理与这个原理正好相反。

膨胀原理:假设原图像中有一个前景物体,那么我们用一个结构元素去膨胀原图的过程是这样的:遍历原图像的每一个像素,然后用结构元素的中心点对准当前正在遍历的这个像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最大值,用这个最大值替换当前像素值。膨胀的结果使得原来的图像增大一圈

img_dialation = cv2.dilate(src, kernel, iterations=1)  # 膨胀 src表示输入的图片, kernel表示方框的大小, iteration表示迭代的次数

1.用结构元素B,扫描图像X的每一个像素点

2.如果B覆盖A的区域有一个点A为黑色对应的点B也为黑色,则该扫描点为黑色,否则为白色。

  用矩阵B膨胀X的结果如下所示

 

 

 

 

 





posted on 2020-12-17 13:15  周街街  阅读(685)  评论(0)    收藏  举报