opencv如何实现图像腐蚀和图像膨胀
小编给大家分享一下opencv如何实现图像腐蚀和图像膨胀,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
语言:python+opencv
为什么使用图像腐蚀和图像膨胀
如图,使用图像腐蚀进行去噪,但是为压缩噪声。
对腐蚀过的图像,进行膨胀处理,可以去除噪声,并保持原样形状。
图像腐蚀
腐蚀主要针对的是二值图像,如只有0和1两个值,
两个输入对象:1原始二值图像,2卷积核
使用卷积核遍历原始二值图像,如果卷积核对应的元素值均为1,其值才为1,否则为0。如图,红色为卷积核。
腐蚀后的结果示意图见下面,效果是将边缘抹掉一部分。
使用方法:erode 中文翻译:侵蚀
处理结果=cv2.erode(原始图像src,卷积核kernel,迭代次数iterations)
卷积核kernel:一般为正方形数组
如:k=np.ones((5,5),np.uint8)
迭代次数iterations:腐蚀次数,默认1
import cv2import numpy as npo=cv2.imread("erode.bmp",cv2.IMREAD_UNCHANGED)k=np.ones((5,5),np.uint8)r=cv2.erode(o,k,iterations=10)cv2.imshow("original",o)cv2.imshow("result",r)cv2.waitKey()cv2.destroyAllWindows()
图像膨胀
图像腐蚀的逆操作。
针对的是二值图像
输入两个参数:二值图像,卷积核。
使用卷积核对二值图像进行遍历,卷积核对应的图像像素点只要有一个为1,则值为1,否则为0.
使用方法:dilate
结果=cv2.dilate(二值图像src,卷积核k,迭代次数itreations)
卷积核 正方形数组:如np.ones((5,5),np.uint8)
import cv2import numpy as npo=cv2.imread("dilation.bmp",cv2.IMREAD_UNCHANGED)k=np.ones((5,5),np.uint8)r=cv2.dilate(o,k,iterations=1)cv2.imshow("original",o)cv2.imshow("result",r)cv2.waitKey()cv2.destroyAllWindows()
看完了这篇文章,相信你对opencv如何实现图像腐蚀和图像膨胀有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。