没有合适的资源?快使用搜索试试~ 我知道了~
43.Python图像形态学处理万字详解(腐蚀膨胀、开闭运算、梯度顶帽黑帽运算).pdf
需积分: 5 0 下载量 37 浏览量
2024-03-31
12:20:27
上传
评论
收藏 3.18MB PDF 举报
温馨提示
试读
18页
43.Python图像形态学处理万字详解(腐蚀膨胀、开闭运算、梯度顶帽黑帽运算)
资源推荐
资源详情
资源评论
[Python图像处理] 四十三.Python图像形态学处理万字详解(腐蚀膨胀、开
闭运算、梯度顶帽黑帽运算)
Eastmount
7875
收藏
264
分类专栏:
Python图像处理及图像识别
文章标签:
Python图像处理
形态学
腐蚀
膨胀
开闭运算
原力计划
2021-07-31 16:55:28
版权
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像
锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还
请海涵~
这篇文章是图像处理的最后一篇文章,后面我们将进入新的章节。主要包括图像识别、目标检测、图像分类、基于深度学习的图像处理
等,感谢您一如既往的支持。
数学形态学是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:
腐蚀和膨胀
开运算和闭运算
图像顶帽运算和图像底帽运算
骨架抽取
形态学梯度
Top-hat变换
万字长文整理,希望对您有所帮助。同时,该部分知识均为作者查阅资料撰写总结,并且开设成了收费专栏,为小宝赚点奶粉钱,感谢您
的抬爱。如果有问题随时私聊我,只望您能从这个系列中学到知识,一起加油。代码下载地址(如果喜欢记得star,一定喔):
https://github.com/eastmountyxz/ImageProcessing-Python
文章目录
一.数学形态学概述
二.图像腐蚀
三.图像膨胀
四.图像开运算
五.图像闭运算
六.图像梯度运算
七.图像顶帽运算
八.图像底帽运算
九.总结
前文参考:
[Python图像处理] 一.图像处理基础知识及OpenCV入门函数
[Python图像处理] 二.OpenCV+Numpy库读取与修改像素
Python图像处理及图像
…
专栏收录该内容
45 篇文章
2026 订阅
¥99.00
¥19.90
订阅专栏
学习会员免费看
第1页 共18页
[Python图像处理] 三.获取图像属性、兴趣ROI区域及通道处理
[Python图像处理] 四.图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
[Python图像处理] 五.图像融合、加法运算及图像类型转换
[Python图像处理] 六.图像缩放、图像旋转、图像翻转与图像平移
[Python图像处理] 七.图像阈值化处理及算法对比
[Python图像处理] 八.图像腐蚀与图像膨胀
[Python图像处理] 九.形态学之图像开运算、闭运算、梯度运算
[Python图像处理] 十.形态学之图像顶帽运算和黑帽运算
[Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图
[Python图像处理] 十二.图像几何变换之图像仿射变换、图像透视变换和图像校正
[Python图像处理] 十三.基于灰度三维图的图像顶帽运算和黑帽运算
[Python图像处理] 十四.基于OpenCV和像素处理的图像灰度化处理
[Python图像处理] 十五.图像的灰度线性变换
[Python图像处理] 十六.图像的灰度非线性变换之对数变换、伽马变换
[Python图像处理] 十七.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子
[Python图像处理] 十八.图像锐化与边缘检测之Scharr算子、Canny算子和LOG算子
[Python图像处理] 十九.图像分割之基于K-Means聚类的区域分割
[Python图像处理] 二十.图像量化处理和采样处理及局部马赛克特效
[Python图像处理] 二十一.图像金字塔之图像向下取样和向上取样
[Python图像处理] 二十二.Python图像傅里叶变换原理及实现
[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
[Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效
[Python图像处理] 二十五.图像特效处理之素描、怀旧、光照、流年以及滤镜特效
[Python图像处理] 二十六.图像分类原理及基于KNN、朴素贝叶斯算法的图像分类案例
[Python图像处理] 二十七.OpenGL入门及绘制基本图形(一)
[Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸
[Python图像处理] 二十九.MoviePy视频编辑库实现抖音短视频剪切合并操作
[Python图像处理] 三十.图像量化及采样处理万字详细总结(推荐)
[Python图像处理] 三十一.图像点运算处理两万字详细总结(灰度化处理、阈值化处理)
[Python图像处理] 三十二.傅里叶变换(图像去噪)与霍夫变换(特征识别)万字详细总结
[Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)
[Python图像处理] 三十四.数字图像处理基础与几何图形绘制万字详解(推荐)
[Python图像处理] 三十五.OpenCV图像处理入门、算数逻辑运算与图像融合(推荐)
[Python图像处理] 三十六.OpenCV图像几何变换万字详解(平移缩放旋转、镜像仿射透视)
[Python图像处理] 三十七.OpenCV和Matplotlib绘制直方图万字详解(掩膜直方图、H-S直方图、黑夜白天判断)
[Python图像处理] 三十八.OpenCV图像增强万字详解(直方图均衡化、局部直方图均衡化、自动色彩均衡化)
[Python图像处理] 三十九.Python图像分类万字详解(贝叶斯图像分类、KNN图像分类、DNN图像分类)
[Python图像处理] 四十.全网首发Python图像分割万字详解(阈值分割、边缘分割、纹理分割、分水岭算法、K-Means分割、漫水填
充分割、区域定位)
[Python图像处理] 四十一.Python图像平滑万字详解(均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波)
第2页 共18页
[Python图像处理] 四十二.Python图像锐化及边缘检测万字详解(Roberts、Prewitt、Sobel、Laplacian、Canny、LOG)
[Python图像处理] 四十三.Python图像形态学处理万字详解(腐蚀膨胀、开闭运算、梯度顶帽黑帽运算)
一.数学形态学概述
数学形态学(Mathematical morphology)
是一种应用于图像处理和模式识别领域的新方法。数学形态学(也称图像代数)表示以形态
为基础对图像进行分析的数学工具,其基本思想是用具有一定形态的结构元素去量度和提取图像中对应形状以达到对图像分析和识别的目
的。数学形态学的应用可以简化图像数据,保持它们基本的形状特征,并出去不相干的结构。数学形态学的算法有天然的并行实现的结
构,主要针对的是二值图像(0或1)。在图像处理方面,二值形态学经常应用到对图像进行分割、细化、抽取骨架、边缘提取、形状分
析、角点检测,分水岭算法等。由于其算法简单,算法能够并行运算所以经常应用到硬件中。
常见的图像形态学运算包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和底帽运算等。主要通过MorphologyEx()函数实现,它能
利用基本的膨胀和腐蚀技术,来执行更加高级形态学变换,如开闭运算、形态学梯度、顶帽、黑帽等,也可以实现最基本的图像膨胀和腐
蚀。其函数原型如下:
dst = cv2.morphologyEx(src, model, kernel)
– src表示原始图像
– model表示图像进行形态学处理,包括:
(1) cv2.MORPH_OPEN:开运算(Opening Operation)
(2) cv2.MORPH_CLOSE:闭运算(Closing Operation)
(3) cv2.MORPH_GRADIENT:形态学梯度(Morphological Gradient)
(4) cv2.MORPH_TOPHAT:顶帽运算(Top Hat)
(5) cv2.MORPH_BLACKHAT:黑帽运算(Black Hat)
– kernel表示卷积核,可以用numpy.ones()函数构建
二.图像腐蚀
图像的腐蚀(Erosion)和膨胀(Dilation)是两种基本的形态学运算,主要用来寻找图像中的极小区域和极大区域。图像腐蚀类似于“领域
被蚕食”,它将图像中的高亮区域或白色部分进行缩减细化,其运行结果比原图的高亮区域更小。
设A,B为集合,A被B的腐蚀,记为A-B,其定义为:
该公式表示图像A用卷积模板B来进行腐蚀处理,通过模板B与图像A进行卷积计算,得出B覆盖区域的像素点最小值,并用这个最小值来
替代参考点的像素值。如图1所示,将左边的原始图像A腐蚀处理为右边的效果图A-B。
图像腐蚀主要包括二值图像和卷积核两个输入对象,卷积核是腐蚀中的关键数组,采用Numpy库可以生成。卷积核的中心点逐个像素扫
描原始图像,被扫描到的原始图像中的像素点,只有当卷积核对应的元素值均为1时,其值才为1,否则将其像素值修改为0。
在Python中,主要调用OpenCV的erode()函数实现图像腐蚀。其函数原型如下:
第3页 共18页
dst = cv2.erode(src, kernel, iterations)
– src表示原始图像
– kernel表示卷积核
– iterations表示迭代次数,默认值为1,表示进行一次腐蚀操作
可以采用函数numpy.ones((5,5), numpy.uint8)创建5×5的卷积核,如下:
图像腐蚀操作的代码如下所示:
输出结果如图2所示,左边表示原图,右边是腐蚀处理后的图像,可以发现图像中的干扰细线(噪声)被清洗干净。
如果腐蚀之后的图像仍然存在噪声,可以设置迭代次数进行多次腐蚀操作。比如进行9次腐蚀操作的核心代码如下:
erosion = cv2.erode(src, kernel,iterations=9)
最终经过9次腐蚀处理的输出图像如图3所示。
#encoding:utf-8
#By:Eastmount CSDN 2021-07-30
import
cv2
import
numpy
as
np
#
读取图片
src
=
cv2
.
imread
(
'test01.jpg'
,
cv2
.
IMREAD_UNCHANGED
)
#
设置卷积核
kernel
=
np
.
ones
(
(
5
,
5
)
,
np
.
uint8
)
#
图像腐蚀处理
erosion
=
cv2
.
erode
(
src
,
kernel
,
iterations
=
9
)
#
显示图像
cv2
.
imshow
(
"src"
,
src
)
cv2
.
imshow
(
"result"
,
erosion
)
#
等待显示
cv2
.
waitKey
(
0
)
cv2
.
destroyAllWindows
(
)
第4页 共18页
剩余17页未读,继续阅读
资源评论
程序员蜗牛
- 粉丝: 1040
- 资源: 75
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于tensorflow-2.11.0 CUDA版本11.2的cuDNN8.1版本
- 5Y study学习平台2016计算机基础-综合测试(8)_哔哩哔哩_bilibili_2580252704.mp4
- (大赛作品)STM32实现的F072RB NUCLEO智能家居控制.zip
- STM32实现的数字示波器源码+数字信号处理教程、配套实例.zip
- 【cookie续续】【cookie续续】【cookie续续】
- 低功耗STM32实现的F411开发板(原理图+PCB源文件+官方例程+驱动等).zip
- 基于stm32实现的 nucleo-L476的智能灯(操作说明+源码).zip
- 基于STM32实现的 NUCLEO板设计彩色LED照明灯(纯cubeMX开发).zip
- 基于STM32实现的 的联合调试侦听设备解决方案(原理图、PCB源文件、调试工具、视频).zip
- 基于STM32实现的 人群定位、调速智能风扇设计(程序、设计报告、视频演示).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功