OpenCV笔记14:形态转换

本文介绍使用OpenCV进行图像形态学操作的方法,包括侵蚀、膨胀、开闭运算等,以及这些操作在消除噪音、隔离和连接图像元素中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、学习目标
最基本的形态学操作是两个:侵蚀和膨胀。它们有广泛的用途,即,消除噪音隔离单个元素并连接图像中的不同元素,查找图像中的强度凸起或孔。

(1)如何使用OpenCV进行形态转换。
(2)学习不同的形态学操作,如侵蚀,膨胀,开放,关闭等。
2、使用的函数方法
cv.erode()
cv.dilate()
cv.morphologyEx()
3、程序
在这里插入图片描述
结果
在这里插入图片描述

程序函数讲解:
腐蚀和膨胀是针对白色部分(高亮部分)而言的。
膨胀:对图像高亮部分进行“领域扩张”,效果图拥有比原图更大的高亮区域;
腐蚀:原图中的高亮区域被蚕食,效果图拥有比原图更小的高亮区域。
(1)膨胀操作
该操作包括将图像A与一些内核(B)卷积,内核(B)可以具有任何形状或大小,通常是正方形或圆形。

内核B有一个定义的锚点,通常是内核的中心。

当在图像上扫描内核B时,我们计算由B重叠的最大像素值,并用该最大值替换锚点位置中的图像像素。这种最大化操作会导致图像中的明亮区域“增长”(因此称为扩张)。

如果内核下的至少一个像素为“1”,则像素元素为“1”。

cv.dilate(img,kernel,iterations=)
参数:
img       :源图像
kernel    :卷积内核
iterations:迭代次数

(2)
侵蚀操作
内核在图像中滑动(如在2D卷积中)。只有当内核下的所有像素都是1时,原始图像中的像素(1或0)才会被视为1,否则它将被侵蚀(变为零)。

cv2.erode(img,kernel,iterations)

(3)
开放:侵蚀,然后扩张
它有助于消除噪音。

opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)

(4)
关闭:膨胀之后是侵蚀
它可用于关闭前景对象内的小孔或对象上的小黑点。

closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

(5)
形态学梯度
它是图像的膨胀和侵蚀之间的差异。
结果看起来像对象的轮廓。

gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)

(6)
黑帽
它是输入图像关闭和输入图像之间的差异。

blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)

(7)
返回一个给定形状和类型的新数组,数组是由1填充的。。

numpy.ones(shape, dtype=None, order='C')

参数:	
shape : int或int的序列
新阵列的形状,例如,或。(2, 3)2

dtype : 数据类型,可选
数组的所需数据类型,例如numpy.int8。默认是 numpy.float64。

order : {'C','F'},可选,默认:C
是否在内存中以行主(C风格)或列主(Fortran风格)顺序存储多维数据。

返回:	
出 : ndarray
具有给定形状,dtype和顺序的数组。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值