1、形态学概述
图像处理中的形态学往往指的是数学形态学。
2、数学形态学
建立在格论和拓扑学基础之上的图像分析学科,是数字形态学图像图像处理的基本理论。 其基本的运算包括二值化腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中于击不中变换、形态学梯度、 Top-hat变换、颗粒分析、流域变换、灰度腐蚀和膨胀、灰度开闭运算、灰值形态学梯度等。
3、膨胀与腐蚀的功能:
4、膨胀的概念
从数学角度,膨胀或腐蚀就是将图像(原图中的部分区域A)与核(锚点B)进行卷积。
膨胀就是求局部最大值的操作,与B卷积,就是求B所覆盖区域的像素点的最大值,并将最大值赋给参考点指定的像素,从而增长高亮区域。其运算符为“⊕”。
dst(x,y)=max(src(x+x',y+y')) 其中,(x',y‘):element(x',y’)≠0
5、腐蚀的概念
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。 换句话说,遍历到的某个位置时,其周围全部是白色,保留白色,否则变为黑色,图像腐蚀变小。 其过程正好与膨胀相反。其运算符为"_"。
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()
其效果图如下:
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()
其效果如下:
在实际的图像去噪中,通常是先腐蚀后膨胀,即所谓的开运算。其效果相比单一操作要好许多。其效果如下:
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务