python膨胀腐蚀函数的简单介绍

形态学操作-腐蚀与膨胀

1.形态学操作

创新互联建站专业为企业提供潮南网站建设、潮南做网站、潮南网站设计、潮南网站制作等企业网站建设、网页设计与制作、潮南企业网站模板建站服务,十年潮南做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

形态学操作就是基于形状的一系列图像处理操作。一般情况下对二值化的图像进行操作。腐蚀与膨胀是最基本的形态学操作

应用:

(1)消除噪声

(2)分割(isolate)独立的图像元素,以及连接(join)相邻的元素

(3)寻找图像中的明显的极大值区域或者极小值区域

2.膨胀(最大值dilate)

此操作是将图像A与任意形状(通常为正方形或圆形)的内核B,,进行卷积。

内核B有一个可定义的 锚点, 通常定义为内核中心点。

进行膨胀操作时,将内核B划过图像,将内核B覆盖区域的最大相素值提取,并代替锚点位置的相素。显然,这一最大化操作将会导致图像中的亮区开始”扩展” (因此有了术语膨胀 dilation )

src——输入图像.

dst——输出图像.

element——用于膨胀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素

iterations——膨胀的次数

3.腐蚀(erode)

腐蚀提取的是内核覆盖下的相素最小值。进行腐蚀操作时,将内核B划过图像,将内核B覆盖区域的最小相素值提取,并代替锚点位置的相素。

src——输入图像.

dst——输出图像.

element——用于腐蚀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素

iterations——腐蚀的次数

4.结构元素

我们一般使用函数 getStructuringElement配合膨胀或腐蚀算法使用

Mat strElement = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3), new Point(-1, -1));

其中有三种内核形状可以选择:

矩形: MORPH_RECT

交叉形: MORPH_CROSS

椭圆形: MORPH_ELLIPSE

再指定内核大小,以及锚点位置。不指定锚点位置,则默认锚点在内核中心位置。

5.图像的开运算

开运算:先腐蚀后膨胀,移除小的对象时候很有用

6.图像的闭运算

闭运算:先膨胀后腐蚀,被用来填充前景物体中的小洞,或者抹去前景物体上的小黑点

7.梯度:膨胀与腐蚀图之差

可以用来突出边缘,可以保留物体的边缘轮廓

8.顶帽:原图与开运算结果之差

开运算放大了裂缝或者局部低亮度的区域,所以,从原图中减去开运算后的图,得到的结果突出了比原图轮廓周围的区域更明亮的区域,这个操作与选择的核的大小有关。TopHat运算一般用来分离比邻近点亮一些的斑块,可以使用这个运算提取背景

9.黑帽运算:闭运算的结果与原图之差

黑帽运算的结果突出了比原图轮廓周围区域更暗的区域,所以黑帽运算用来分离比邻近点暗一些的斑块。

参考:

2021-02-13 Python OpenCV morphologyEx()函数

该函数执行高级形态转换,可以使用腐蚀和膨胀作为基本操作来执行高级形态转换,任何操作都能够原地执行。在多通道图像的例子中,每一个通道都独立地被处理。

erode(腐蚀):它沿着物体边界移除像素并缩小物体的大小,会增强图像的暗部。

dilate(膨胀):通过将像素添加到该图像中的对象的感知边界,扩张放大图像中的明亮白色区域。

opening operation(开运算):先腐蚀,后膨胀。能够排除小黑点。

close operation(闭运算):先膨胀,后腐蚀。能够排除小亮点。

src:输入图像,输入图像的通道数是任意的。

op:形态操作的类型如:cv2.MORPH_ERODE(腐蚀),cv2.MORPH_DILATE(膨胀),cv2.MORPH_OPEN(开运算),cv2.MORPH_CLOSE(闭元素)

...等等操作

(详细参考官方文档 MorphTypes )

kernel:输入一个数组作为核。能被 getStructuringElement 创建。

anchor:核的锚点位置,负值说明该锚点位于核中心。默认为核中心。

iterations:整型int。腐蚀与膨胀被应用的次数。默认为None。

例:一次开运算迭代两次:(MORPH_OPEN= )伴随两次迭代等于:腐蚀--腐蚀--膨胀--膨胀。

borderType:像素边界扩展类型,参照官方文档所列的几种类型 BorderTypes

borderValue:边界为常量时的边界值。默认值有特殊含义。默认值为None。

2021-02-12 Python OpenCV getStructuringElement()函数

此函数用于生成不同形态的结构元素,用于膨胀,腐蚀,等形态操作。

shape:

1.cv2.MORPH_RECT(矩形结构化元素)

2.cv2.MORPH_CROSS(十字形结构化元素)

3.cv2.MORPH_ELLIPSE(椭圆形结构化元素,内接一个矩形)

参考 官方文档

ksize:元组(width,height),结构元素的尺寸。

anchor:坐标(x,y),元素内的锚定位置。默认值为(-1,-1)即结构化元素的中心。


网页标题:python膨胀腐蚀函数的简单介绍
网站地址:http://scjbc.cn/article/dosccgs.html

其他资讯