前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二值形态学之开运算和闭运算

二值形态学之开运算和闭运算

作者头像
mythsman
发布2022-11-14 14:33:29
9280
发布2022-11-14 14:33:29
举报
文章被收录于专栏:mythsman的个人博客

开闭运算是二值形态学的重要部分,是对腐蚀和膨胀算法的扩展应用,在图像的去噪方面也是十分的常用。

二值开运算

定义

用结构元素B(即模板核)对图像A进行开运算,可以用符号A\circ B来表示,其定义式为:

A\circ B=(A\Theta B)\bigoplus B

所以开运算实际上就是A先被B腐蚀,再被B膨胀。

作用

很明显,开运算可以消除一些很小的背景噪点(椒盐噪声),平滑较大物体的边界而不明显改变其体积。也会磨光矩形的内边缘,以及分离一些粘连目标。

(这里所说的背景噪点是指以黑色为背景色,白色为前景色)

OpenCV调用

代码语言:javascript
复制
#coding:utf-8
import cv2
import numpy as np

im=cv2.imread("test.png",cv2.IMREAD_GRAYSCALE)#以二值图读入

im=cv2.bitwise_not(im)#由于背景为白色,将其置反从而统一标准

thresh,im=cv2.threshold(im,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)#OTSU转化为二值图

cv2.imshow('binary',im)
cv2.imwrite('binary.png',im)

kernel=np.ones((2,2),np.uint8)#模板核

opening=cv2.morphologyEx(im,cv2.MORPH_OPEN,kernel)#进行开运算消除背景噪声

cv2.imshow('opening',opening)
cv2.imwrite('opening.png',opening)

cv2.waitKey(0)
cv2.destroyAllWindows()

这里调用的是cv2.morphologyEx函数,这是专门用于处理形态学问题的,传入适当参数即可。

由于图像本身是以白色为背景,因此将他的像素取个反,使他符合约定俗称的黑色背景。

(写的时候发现一个问题,就是imread好像并不直接支持gif图像格式的读取,因此本来是test.gif的图片还得事先进行convert,转化为test.png然后才好使用)

效果图

binary
binary
opening
opening

二值闭运算

定义

用结构元素B(即模板核)对图像A进行闭运算,可以用符号A\cdot B来表示,其定义式为:

A\cdot B=[A\bigoplus (-B)]\Theta (-B)

所以闭运算实际上就是A先被B膨胀,再被B腐蚀。

作用

闭运算在去除图像的前景噪声方面具有很好的应用,通过闭运算之后,图像原有目标的间断可以得到连接、目标内部的孔洞可以得到填充而基本不改变原图的大小以及形态。同时也会磨光凸向图像内部的边角。

OpenCV调用

代码语言:javascript
复制
#coding:utf-8
import cv2
import numpy as np

im=cv2.imread("test.png",cv2.IMREAD_GRAYSCALE)#以二值图读入

thresh,im=cv2.threshold(im,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)#OTSU转化为二值图

cv2.imshow('binary',im)
cv2.imwrite('binary.png',im)

kernel=np.ones((2,2),np.uint8)#模板核

closing=cv2.morphologyEx(im,cv2.MORPH_CLOSE,kernel)#进行闭运算消除前景噪声

cv2.imshow('closing',closing)
cv2.imwrite('closing.png',closing)

cv2.waitKey(0)
cv2.destroyAllWindows()

没啥好说的了,对着开操作改下参数就好了。

效果图

binary
binary
closing
closing
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二值开运算
    • 定义
    • 作用
      • OpenCV调用
        • 效果图
        • 二值闭运算
          • 定义
            • 作用
              • OpenCV调用
                • 效果图
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档