2021-01-12

膨胀与腐蚀

1、膨胀与腐蚀的功能:

消除噪声;

分割出独立的图像元素,在图像中连接相邻的元素;

寻找图像中的明细的极大值区域或极小值区域;

求出图像的梯度。

2、膨胀的概念

从数学角度,膨胀或腐蚀就是将图像(原图中的部分区域A)与核(锚点B)进行卷积。 膨胀就是求局部最大值的操作,与B卷积,就是求B所覆盖区域的像素点的最大值,并将最大值赋给参考点指定的像素,从而增长高亮区域。其运算符为“⊕”。
3、腐蚀的概念
dst(x,y)=min(src(x+x’,y+y’)) 其中,(x’,y‘):element(x’,y’)≠0 在python中,dst=cv2.erode(src,kernel,iterations) iterations表示迭代次数 即被扫描到的原始图像中的像素点,只有当卷积核对应的元素值均为1时,其值才为1,否则其值修改为0。 换句话说,遍历到的某个位置时,其周围全部是白色,保留白色,否则变为黑色,图像腐蚀变小。 其过程正好与膨胀相反。其运算符为"_"。
4、膨胀代码

import cv2
import numpy as np
#读取图片
src = cv2.imread('F:/image/12.jpg', cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel = np.ones((3,3), np.uint8)
#图像膨胀处理
dil = cv2.dilate(src, kernel,iterations=1)  #iterations未出现时表示此时为1,即一次腐蚀
#显示图像
cv2.imshow("src", src)
cv2.imshow("result", dil)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()



5、腐蚀代码

import cv2
import numpy as np
#读取图片
src = cv2.imread('F:/image/12.jpg', cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel = np.ones((5,5), np.uint8)
#图像腐蚀处理
erosion = cv2.erode(src, kernel,iterations=1)  #iterations未出现时表示此时为1,即一次腐蚀
#显示图像
cv2.imshow("src", src)
cv2.imshow("result", erosion)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()



上一篇:成功解决TypeError: __init__() got an unexpected keyword argument 'n_iterations'


下一篇:MD5Utils