




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第详解Python图像形态学处理(开运算,闭运算,梯度运算)目录一.图像开运算二.图像闭运算三.图像梯度运算四.总结这篇文章将继续介绍开运算、闭运算和梯度运算。数学形态学(MathematicalMorphology)是一种应用于图像处理和模式识别领域的新方法。数学形态学(也称图像代数)表示以形态为基础对图像进行分析的数学工具,其基本思想是用具有一定形态的结构元素去量度和提取图像中对应形状以达到对图像分析和识别的目的。
一.图像开运算
开运算一般能平滑图像的轮廓,削弱狭窄部分,去掉较细的突出。闭运算也是平滑图像的轮廓,与开运算相反,它一般熔合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。图像开运算是图像依次经过腐蚀、膨胀处理的过程,图像被腐蚀后将去除噪声,但同时也压缩了图像,接着对腐蚀过的图像进行膨胀处理,可以在保留原有图像的基础上去除噪声。其原理如图1所示。
设A是原始图像,B是结构元素图像,则集合A被结构元素B做开运算,记为A◦B,其定义为:
换句话说,A被B开运算就是A被B腐蚀后的结果再被B膨胀。图像开运算在OpenCV中主要使用函数morphologyEx(),它是形态学扩展的一组函数,其函数原型如下:
dst=cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel)
src表示原始图像cv2.MORPH_OPEN表示图像进行开运算处理kernel表示卷积核,可以用numpy.ones()函数构建
图像开运算的代码如下所示:
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
#读取图片
src=cv2.imread('test01.png',cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel=np.ones((5,5),np.uint8)
#图像开运算
result=cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel)
#显示图像
cv2.imshow("src",src)
cv2.imshow("result",result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果如图2所示,左边为原始图像,右边为处理后的图像,可以看到原始图形中的噪声点被去除了部分。
但处理后的图像中仍然有部分噪声,如果想更彻底地去除,可以将卷积设置为1010的模板,代码如下所示:
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
#读取图片
src=cv2.imread('test01.png',cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel=np.ones((10,10),np.uint8)
#图像开运算
result=cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel)
#显示图像
cv2.imshow("src",src)
cv2.imshow("result",result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
运行结果如图3所示:
二.图像闭运算
图像闭运算是图像依次经过膨胀、腐蚀处理的过程,先膨胀后腐蚀有助于过滤前景物体内部的小孔或物体上的小黑点。其原理如图4所示:
设A是原始图像,B是结构元素图像,则集合A被结构元素B做开运算,记为AB,其定义为:
换句话说,A被B闭运算就是A被B膨胀后的结果再被B腐蚀。图像开运算在OpenCV中主要使用函数morphologyEx(),其函数原型如下:
dst=cv2.morphologyEx(src,cv2.MORPH_CLOSE,kernel)
src表示原始图像cv2.MORPH_CLOSE表示图像进行闭运算处理kernel表示卷积核,可以用numpy.ones()函数构建
图像闭运算的代码如下所示:
#-*-coding:utf-8-*-
#By:Eastmount
importcv2
importnumpyasnp
#读取图片
src=cv2.imread('test02.png',cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel=np.ones((10,10),np.uint8)
#图像闭运算
result=cv2.morphologyEx(src,cv2.MORPH_CLOSE,kernel)
#显示图像
cv2.imshow("src",src)
cv2.imshow("result",result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果如图5所示,它有效地去除了图像中间的小黑点(噪声)。
三.图像梯度运算
图像梯度运算是图像膨胀处理减去图像腐蚀处理后的结果,从而得到图像的轮廓,其原理如图6所示,(a)表示原始图像,(b)表示膨胀处理后的图像,(c)表示腐蚀处理后的图像,(d)表示图像梯度运算的效果图。
在Python中,图像梯度运算主要调用morphologyEx()实现,其中参数cv2.MORPH_GRADIENT表示梯度处理,函数原型如下:
dst=cv2.morphologyEx(src,cv2.MORPH_GRADIENT,kernel)
src表示原始图像cv2.MORPH_GRADIENT表示图像进行梯度运算处理kernel表示卷积核,可以用numpy.ones()函数构建
图像梯度运算的实现代码如下所示。
#-*-coding:utf-8-*-
importcv2
importnumpyasnp
#读取图片
src=cv2.imread('test03.png',cv2.IMREAD_UNCHANGED)
#设置卷积核
kernel=np.ones((10,10),np.uint8)
#图像梯度运算
result=cv2.morphologyEx(src,cv2.MORPH_GRADIENT,kernel)
#显示图像
cv2.imshow("src",src)
cv2.imshow("result",result)
#等待显示
cv2.waitKey(0)
cv2.destroyAllWindows()
图像梯度运算处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC TR 27599:2025 EN Information technology – Brain-computer interfaces – Use cases
- 天津市五区县重点校联考2024-2025学年高二下学期4月期中考试 化学试题(原卷版+解析版)
- 路灯安装工程承包协议
- 汽车行业二手车交易质保合同
- 车工基础知识试题及答案
- 浙江国企招聘2025湖州安吉国丰热电有限公司招聘57人笔试参考题库附带答案详解
- 2025重庆广播电视集团(总台)招聘11人笔试参考题库附带答案详解
- 2025福建福清市汇融创业投资集团有限公司(第一次)招聘8人笔试参考题库附带答案详解
- 2025湖南双新食品招28人笔试参考题库附带答案详解
- 2025年福建省晋江新丝路康养产业有限公司招聘6人笔试参考题库附带答案详解
- 2024年福建省公务员录用考试《行测》真题及答案解析
- 慢阻肺康复治疗病例汇报
- 氢氧化钠购销
- 医疗器械供应商合作管理制度
- 2024年中级电工考前必刷必练题库500题(含真题、必会题)
- DB11-T 1832.7-2022 建筑工程施工工艺规程 第7部分:建筑地面工程
- 湖北省武汉市腾云联盟2023-2024学年高二下学期5月联考化学试卷
- 《PLC应用技术(西门子S7-1200)第二版》全套教学课件
- 2024年《武器装备科研生产单位保密资格标准》内容考试试题库及答案
- 变革管理方案计划
- 异地就医登记备案表
评论
0/150
提交评论