Python 官方文档:入门教程 => 点击学习
目录1 引言2 腐蚀概念3 举个栗子4 水平腐蚀4.1 理论基础4.2 代码实现5 垂直腐蚀5.1 理论基础5.2 代码实现6 全方向腐蚀6.1 理论基础6.2 代码实现7 总结1
形态学运算是针对二值图像依据数学形态学集合论方法发展起来的图像处理的方法.其主要内容是设计一整套的变换概念和算法,用以描述图像的基本特征.
在图像处理中,形态学的应用主要有以下两点:利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的;描述和定义图像的各种几何参数和特征等.
数学形态学的运算以腐蚀和膨胀这两种基本运算为基础,腐蚀操作在数学形态学上的作用是消除物体的边界点,使边界向内部收缩的过程,主要用于将小于物体结构元素的物体去除.例如两个物体之间有细小的连通,可以通过腐蚀操作将两个物体分开.腐蚀的数学表达式为:
上述公式中:
此公式的含义是用B来腐蚀X得到的集合S,S是由B完全包括在X中时B的当前位置的集合.
只看上面公式,是不是有种云里雾里的感觉,那我们不妨来举个栗子说明一下,请看下图:
我们可以这样理解上述腐蚀过程,即用B的中心点和X上的点一个一个地对比,如果B上所有对应的点都在X的范围内,则该点保留;否则将该点去除;
通俗的讲就是将结构元素在图像中移动,如果结构元素完全包含在目标图像X中,则保留目标图像中对应于中心点的像素点,否则删除该像素点.
图像腐蚀操作按照所采用的结构元素的类型,可以分为以下三类:水平腐蚀垂直腐蚀以及全方向腐蚀.其中水平腐蚀所采用的结构元素为[0,0,0], 其具体实现步骤如下:
使用python实现按上述过程,核心代码如下:
def horizon_erode(bin_img):
out_img = np.zeros(shape=bin_img.shape, dtype=np.uint8) + 255
h = bin_img.shape[0]
w = bin_img.shape[1]
for i in range(h):
for j in range(1,w-1):
out_img[i][j]=0
for k in range(3):
if bin_img[i][j+k-1] > 127:
out_img[i][j]=255
return out_img
运行结果如下:
上图中,从左往右依次为彩色原图,二值化后的结果图,以及采用水平腐蚀后的效果图,可以看到腐蚀后的图相比二值图外围在纵向上被腐蚀掉一圈。
垂直腐蚀和水平腐蚀原理类似,只是所采用的结构元素不同,垂直腐蚀所使用的结构元素为 [ 0 , 0 , 0 ] T [0,0,0]^T [0,0,0]T,其详细的实现步骤如下:
使用Python实现按上述过程,核心代码如下:
def vertical_erode(bin_img):
out_img = np.zeros(shape=bin_img.shape, dtype=np.uint8) + 255
h = bin_img.shape[0]
w = bin_img.shape[1]
for i in range(1,h-1):
for j in range(w):
out_img[i][j]=0
for k in range(3):
if bin_img[i+k-1][j] > 127:
out_img[i][j]=255
return out_img
运行结果如下:
上图中,从左往右依次为彩色原图,二值化后的结果图,以及采用垂直腐蚀后的效果图,可以看到腐蚀后的图相比二值图在横向上被腐蚀掉一圈。
全方向腐蚀综合了垂直腐蚀和水平腐蚀,所采用的结构元素为十字形,全向腐蚀的一般实现步骤如下:
使用python实现按上述过程,核心代码如下:
def all_erode(bin_img):
out_img = np.zeros(shape=bin_img.shape, dtype=np.uint8) + 255
h = bin_img.shape[0]
w = bin_img.shape[1]
B=[1,0,1,0,0,0,1,0,1]
for i in range(1,h-1):
for j in range(1,w-1):
out_img[i][j]=0
for m in range(3):
for n in range(3):
if B[m*3+n] == 1:
continue
if bin_img[i+m-1][j+n-1] > 127:
out_img[i][j]=255
return out_img
运行结果如下:
上图中,从左往右依次为彩色原图,二值化后的结果图,以及采用垂直腐蚀后的效果图,可以看到腐蚀后的图相比二值图在横向和纵向上都被腐蚀掉一圈。
通过上述简单步骤,我们实现了二值图像水平腐蚀垂直腐蚀以及全向腐蚀,并给出了完整代码实例。
您学废了吗?
到此这篇关于Python图像处理笔记之二值图像腐蚀的文章就介绍到这了,更多相关Python二值图像腐蚀内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 玩转Python图像处理之二值图像腐蚀详解
本文链接: https://www.lsjlt.com/news/136409.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0