需要源码和图片请点赞关注收藏后评论区留言私信~~~
腐蚀和膨胀是图像形态学中的两种核心操作,通过这两种操作可以清除或强化图像中的细节。合理使用腐蚀和膨胀,还可以实现图像开运算、闭运算、梯度运算、顶帽运算和黑帽运算等极具特点的操作
腐蚀
腐蚀操作可以让图像沿着自己的边界向内收缩,OpenCV通过核来实现收缩计算,核的英文名为kernel,在形态学中可以理解为由N个像素组成的像素块,像素块包含一个核心。像素块在图像的边缘移动,在移动过程中,核会将图像边缘那些与核重合但又没有越过核心的像素点都抹除
核腐蚀图像中的像素
OpenCV将腐蚀操作封装成erode方法 语法如下
dst=cv2.erode(src,kernel,anchor,iterations,borderType,borderValue)
参数说明
src 原始图像
kernel 腐蚀使用的核
anchor 可选参数 核的锚点位置
iterations 可选参数 腐蚀操作的迭代次数 默认值为1
后面两个参数建议采用默认
图像经过腐蚀操作之后,可以抹除一些外部的细节 如下图所示
原图
腐蚀之后的图像
小蜘蛛的腿被当作外部细节给抹除了 同时小蜘蛛的眼睛变大了
通常使用numpy模块来创建核数组,数组的行列数越大,计算出的效果就越粗糙,行列数越小,计算出的效果就越精细
下面实战将仙人球图像中的刺抹除
可见经过腐蚀操作之后,仙人球上的词明显少了许多 变得光滑平整
部分代码如下
import cv2 import numpy as np img = cv2.imread("cactus.jpg") # 读取原图 k = np.on((3, 3), np.uint8) # 创建3*3的数组作为核 cv2.imshow(g", img) # 显示原图 dst = cv2.ere(img, k) # 腐蚀操作 cv2.imshow(t", dst) # 显示腐蚀效果 cv2.waitKey() # 按下任何键盘按键后 cv2.destroyAllWindows() # 释放所有窗体
创作不易 觉得有帮助请点赞关注收藏~~~