ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

[Python图像处理八七.图像腐蚀和图像膨胀

2020-07-05 16:34:35  阅读:205  来源: 互联网

标签:src kernel Python cv2 卷积 图像处理 图像 np


图像腐蚀

1.基础理论

形态学转换主要针对的是二值图像(0/1)图像类似于领域被蚕食,将图像中的高亮区域白色部分进行缩减细化,其运行结果图比原图的高亮区域更小。主要包括两个输入对对象: 二值图像,卷积核(卷积核是腐蚀中的关键数组,采用numpy库组成)卷积核的中心点逐个像素扫描原始图像。

被扫描到的原始图像中的像素点,只有当卷积核对应的元素值均为1时,其值才为1,否则其值修改为0。换句话说,遍历到的黄色点位置,其周围全部是白色,保留白色,否则变为黑色,图像腐蚀变小。

函数原型: 主要是用erode函数,dst = cv2.erode(src, kernel, iternations) 参数dst表示处理的结果,src表示原图像,kernel表示卷积核,iternations表示迭代的次数,默认是1.例如 5*5的卷积核,采用函数np.ones((5, 5), np.uint8)构建。

代码如下:

import cv2
import numpy as np
src = cv2.imread("1.jpg", cv2.IMREAD_UNCHANGED)
kernel = np.ones((5, 5), np.uint8)
erosion = cv2.erode(src, kernel)
cv2.imshow("src", src)
cv2.imshow("result",erode)
if cv2.waitKey() == 27:
    cv2.destroyAllWindows()

图像膨胀

1.基础理论

图像膨胀是腐蚀操作的逆操作,类似于领域扩张,将图像中的高亮区域或白色部分进行扩张,其运行效果图比原图的高亮区域更大,线条变粗了,主要用于去噪

图像被腐蚀后,去掉了噪声,但是会压缩图像

对腐蚀过的图像进行膨胀处理,可以去除噪声,并且保持原有形状

卷积核是腐蚀中的关键数组,采用numpy库可以生成。卷积核的中心点逐个像素扫描原始图像,被扫描到的原始图像中的像素点,当卷积核对应的元素值只要有一个为1时,其值就为1,否则为0

图像膨胀主要是用dilate函数,dst = cv2.dilate(src, kernel, iternations)

代码如下:

import cv2
import numpy as np
src = cv2.imread("1.jpg", cv2.IMREAD_UNCHANGED)
kernel = np.ones((5, 5), np.uint8)
dilate= cv2.dilate(src, kernel,5)
cv2.imshow("src", src)
cv2.imshow("result",dilate)
if cv2.waitKey() == 27:
    cv2.destroyAllWindows()

图像去噪通常需要先腐蚀后膨胀,又称为开运算

erosion = cv2.erode(src, kernel)

result= cv2.dilate(erosion, kernel)

 

 

转自:https://blog.csdn.net/Eastmount/article/details/83581277

标签:src,kernel,Python,cv2,卷积,图像处理,图像,np
来源: https://www.cnblogs.com/zhouzetian/p/13246560.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有