形态学转换

1、腐蚀  cv2.erode()

就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然
是白色)。这是怎么做到的呢?卷积核沿着图像滑动,如果与卷积核对应的原图
像的所有像素值都是 1,那么中心元素就保持原来的像素值,否则就变为零。
这回产生什么影响呢?根据卷积核的大小靠近前景的所有像素都会被腐蚀
掉(变为 0),所以前景物体会变小,整幅图像的白色区域会减少。这对于去除
白噪声很有用,也可以用来断开两个连在一块的物体等。
 
 
2、膨胀  cv2.dilate()
与腐蚀相反,与卷积核对应的原图像的像素值中只要有一个是 1,中心元
素的像素值就是 1。所以这个操作会增加图像中的白色区域(前景)。一般在去
噪声时先用腐蚀再用膨胀。因为腐蚀在去掉白噪声的同时,也会使前景对象变
小。所以我们再对他进行膨胀。这时噪声已经被去除了,不会再回来了,但是
前景还在并会增加。膨胀也可以用来连接两个分开的物体。
 
3、开运算先进行腐蚀运算再进行膨胀就叫做开运算,
被用作去除噪声,cv2.morphologhEx()
 
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、礼帽
原始图像与进行开运算之后得到的图像的差。下面的例子是用一个 9x9 的
核进行礼帽操作的结果。
tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)
 
 
7、黑帽
进行闭运算之后得到的图像与原始图像的差。
blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)
posted @   Tomorrow1126  阅读(152)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示