python环境下使用膨胀和腐蚀处理图片的方法

2025-12-20 18:10:36

1、在OpenCV里有一个getStructuringElement函数专门完成膨胀腐蚀核的初始化。有了这个就是十分方便。

我的理解是:

一般地,膨胀腐蚀大多针对二值图像。

因此,膨胀就是把白色区域扩大,消除黑色小块或空洞;

腐蚀就是把白色区域缩小,消除白色小块,扩大黑色区域

getStructuringElement参数有三种类型:

第一个参数: 0:矩形  1:十字交叉形  2: 椭圆。 其中 矩形全填充1.

第二个参数: 核的大小 一般 3,3  5,5 都可以

python环境下使用膨胀和腐蚀处理图片的方法

python环境下使用膨胀和腐蚀处理图片的方法

2、import numpy as np

import cv2 as  cv

import copy

image = cv.imread('c:\\haitun.png')

cv.imshow("image", image)

本例采用海豚图示例。

python环境下使用膨胀和腐蚀处理图片的方法

3、转变成灰度

gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)

cv.imshow("gray", gray)

python环境下使用膨胀和腐蚀处理图片的方法

4、ret, thresholdImg = cv.threshold(gray, 100, 255, cv.THRESH_BINARY)

cv.imshow("thresholdImg ", thresholdImg )

使用阈值方法转换成二值图

python环境下使用膨胀和腐蚀处理图片的方法

5、使用getStructuringElement定义核, 参数MORPH_RECT矩形, 5※5大小

kernel = cv.getStructuringElement(cv.MORPH_RECT,(5, 5))

print(kernel)

python环境下使用膨胀和腐蚀处理图片的方法

6、#腐蚀图像

erodImg = cv.erode(thresholdImg, kernel)

#显示腐蚀后的图像

cv.imshow("erodImg", erodImg);

腐蚀白色区域,黑色区域扩大。

python环境下使用膨胀和腐蚀处理图片的方法

7、#膨胀图像

dilateImg = cv.dilate(thresholdImg, kernel)

#显示膨胀后的图像

cv.imshow("dilateImg", dilateImg);

膨胀白色区域,白色区域扩大。黑色变少

python环境下使用膨胀和腐蚀处理图片的方法

8、从上面dilateImg和 erodImg可以明显看出不同,这性质在图像处理中很有用。

我们修改一下getStructuringElement的参数为cv.MORPH_CROSS

大小还是5x5

看效果.

python环境下使用膨胀和腐蚀处理图片的方法

python环境下使用膨胀和腐蚀处理图片的方法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢