前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >形态学操作—膨胀与腐蚀(Dilation and Erosion)

形态学操作—膨胀与腐蚀(Dilation and Erosion)

作者头像
小飞侠xp
发布2018-08-29 15:18:17
2.1K0
发布2018-08-29 15:18:17
举报

膨胀和腐蚀被称为形态学操作。它们通常在二进制图像上执行,类似于轮廓检测。通过将像素添加到该图像中的对象的感知边界,扩张放大图像中的明亮白色区域。侵蚀恰恰相反:它沿着物体边界移除像素并缩小物体的大小。 通常这两个操作是按顺序执行的,以增强重要的对象特征!

  • 膨胀 要在OpenCV中扩展图像,您可以使用该dilate函数和三个输入:原始二进制图像,确定扩张大小的内核(无将导致默认大小),以及执行扩张的多次迭代(通常= 1) 在下面的例子中,我们有一个5x5的内核,它们在图像上移动,就像一个滤波器一样,如果任何周围的像素在5x5窗口中都是白色,则将像素变成白色!我们将使用草书字母“j”的简单图像作为示例。
  • 腐蚀 为了侵蚀图像,我们采用erode函数。
代码语言:javascript
复制
# Reads in a binary image
image = cv2.imread(‘j.png’, 0) 

# Create a 5x5 kernel of ones
kernel = np.ones((5,5),np.uint8)

# Dilate the image
dilation = cv2.dilate(image, kernel, iterations = 1)
# Erode the image
erosion = cv2.erode(image, kernel, iterations = 1)

OPENING

如上所述,这些操作通常组合在一起以获得理想的结果!一种这样的组合称为Opening,其是侵蚀,然后是膨胀 这在降噪中是有用的,其中侵蚀首先消除噪声(并收缩物体)然后扩张再次扩大物体,但噪声将从先前的侵蚀中消失! 为了在OpenCV中实现这一点,我们将函数morphologyEx与原始图像,我们想要执行的操作以及传入的内核一起使用。

代码语言:javascript
复制
opening = cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel)
Closing

Closing 是Opening的反向组合,它是膨胀,然后是侵蚀。这对于关闭物体内的小孔或暗区很有用 它可用于关闭前景对象内的小孔或对象上的小黑点。 closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)

Opening和Closing 操作试图提取关于物体形状的更好(更少噪声)信息或放大重要特征,如角点检测的情况!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OPENING
    • Closing
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档