多语言展示
当前在线:1196今日阅读:39今日分享:10

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

膨胀和腐蚀对图片进行加工是形态学处理图片的方法。实际使用多用开运算和闭运算来完成。膨胀和腐蚀是开闭运算的基础方法。
工具/原料
1

python3

2

pycharm windows7

方法/步骤
1

在OpenCV里有一个getStructuringElement函数专门完成膨胀腐蚀核的初始化。有了这个就是十分方便。我的理解是:一般地,膨胀腐蚀大多针对二值图像。因此,膨胀就是把白色区域扩大,消除黑色小块或空洞;腐蚀就是把白色区域缩小,消除白色小块,扩大黑色区域getStructuringElement参数有三种类型:第一个参数: 0:矩形  1:十字交叉形  2: 椭圆。 其中 矩形全填充1.第二个参数: 核的大小 一般 3,3  5,5 都可以

2

import numpy as npimport cv2 as  cvimport copyimage = cv.imread('c:\\haitun.png')cv.imshow('image', image)本例采用海豚图示例。

3

转变成灰度gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)cv.imshow('gray', gray)

4

ret, thresholdImg = cv.threshold(gray, 100, 255, cv.THRESH_BINARY)cv.imshow('thresholdImg ', thresholdImg )使用阈值方法转换成二值图

5

使用getStructuringElement定义核, 参数MORPH_RECT矩形, 5※5大小kernel = cv.getStructuringElement(cv.MORPH_RECT,(5, 5))print(kernel)

6

#腐蚀图像erodImg = cv.erode(thresholdImg, kernel)#显示腐蚀后的图像cv.imshow('erodImg', erodImg);腐蚀白色区域,黑色区域扩大。

7

#膨胀图像dilateImg = cv.dilate(thresholdImg, kernel)#显示膨胀后的图像cv.imshow('dilateImg', dilateImg);膨胀白色区域,白色区域扩大。黑色变少

8

从上面dilateImg和 erodImg可以明显看出不同,这性质在图像处理中很有用。我们修改一下getStructuringElement的参数为cv.MORPH_CROSS大小还是5x5看效果.

注意事项
1

注意观察 膨胀后一些小的黑色空洞没有了。

2

注意腐蚀和膨胀的区别(都是针对白色区域而言的) 。

推荐信息