Python教程

【opencv-python】形态学转换—腐蚀

本文主要是介绍【opencv-python】形态学转换—腐蚀,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

形态学操作主要包括腐蚀、膨胀、开运算、闭运算等,在opencv-python中,有相关函数可以满足要求,如cv2.erode(),cv2.dilate(),cv2.morphologyEx()等。形态学操作是根据图像形状进行的简单操作,一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀,它们的变体构成了开运算、闭运算、梯度等,以下图为例逐一介绍。
在这里插入图片描述
首先对这张图进行腐蚀,代码如下:

import cv2
import numpy as np

img = cv2.imread('j.png',0)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(img,kernel,iterations = 1)

运行效果为:
在这里插入图片描述
可见腐蚀效果比较明显。查看函数说明,如下图所示:

在这里插入图片描述其原理为:**找kernel尺寸中图片区域中灰度值最小值,并原图片的中心值替换。**我们对其原理进行分析,人为构造一个小维度数组,以此代表一张图像,代码如下所示:

img = np.uint8([[1,2,3,4,5], 
				[5,4,3,2,1],
				[2,4,6,8,10],
				[10,8,6,4,2], 
				[5,10,15,10,5]])
kernel = np.ones((3,3),np.uint8)
erosion = cv2.erode(img,kernel,iterations = 1)
print('img:', img)
print('erosion:', erosion)

运行结果为:
在这里插入图片描述
将原图片图示化,如下图所示:
在这里插入图片描述可见,除了边缘以外的中部像素灰度值,均为以本体为中心3✖️3区域内的最小灰度值。而目标图像边缘的像素值,亦为kernel框大小范围内的最小像素值,只是可选择像素由于边缘效果减少了。


感谢支持,欢迎关注,丰富技术/学术内容持续更新!

opencv-python快速入门视频教程


在这里插入图片描述

这篇关于【opencv-python】形态学转换—腐蚀的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!