python/opecv:开/闭运算、顶帽算法、黑帽算法

腐蚀
原理:其实就是选择滑动窗口中像素值最小的点(局部最小值)
函数原型:

dst=cv2.erode(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

src:源图,通道数任意,数据类型可以为CV_8U,CV_16U,CV_16S,CV_32F或 CV_64F
dst:输出图,与src有着同样的尺寸
kernel:操作核(结构B),通常这个参数由函数getStructuringElement得到,你要乐意自己写一个也行
anchor:锚点位置,默认值为中心点
iterations:自身迭代的次数,默认为1
膨胀:
原理:就是局部最大值
函数原型:

dst=cv2.dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

开操作
公式表示:
先腐蚀后膨胀的操作称之为开操作。它具有消除细小物体,在纤细处分离物体和平滑较大物体边界的作用。
函数原型:

dst = cv2.morphologyEx(src,cv2.MORPH_OPEN,kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

闭操作:
先膨胀后腐蚀的操作称之为闭操作。它具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。
采用上图的结构对原件进行闭操作。
函数原型:

dst = cv2.morphologyEx(src,cv2.MORPH_CLOSE,kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

形态学梯度:

简单讲,就是膨胀以后的图像减去腐蚀以后的图像。
函数原型:

dst = cv2.morphologyEx(src,cv2.MORPH_GRADIENT,kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])
#或者可以这样写
cv2.dilate() - cv2.erode()

顶帽
简单讲,就是原图减去开运算以后的图像。
函数原型:

dst = cv2.morphologyEx(src,cv2.MORPH_TOPHAT,kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

黑帽:
简单讲,就是闭运算以后的图像减去原图。
函数原型:
dst = cv2.morphologyEx(src,cv2.MORPH_BLACKHAT,kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]])

Reference:
https://blog.csdn.net/qq_30490125/article/details/80490776

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值