opencv-python中的腐蚀与膨胀函数

19人阅读 评论(0) 收藏 举报
分类:

1、图像的腐蚀:

就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然是白色)。

这是怎么做到的呢?卷积核沿着图像滑动,如果与卷积核对应的原图像的所有像素值都是1,那么中心元素就保持原来的像素值,否则就变为零。  

这回产生什么影响呢?根据卷积核的大小靠近前景的所有像素都会被腐蚀掉(变为0),所以前景物体会变小,整幅图像的白色区域会减少。

这对于去除白噪声很有用,也可以用来断开两个连在一块的物体等。  

这里我们有一个例子,使用一个5x5的卷积核,其中所有的值都是以。让我们看看他是如何工作的:

[python] view plain copy
  1. import cv2  
  2. import numpy as np   
  3. img = cv2.imread('j.png',0)  
  4. kernel = np.ones((5,5),np.uint8)    
  5. erosion = cv2.erode(img,kernel,iterations = 1)  
腐蚀主要就是调用cv2.erode(img,kernel,iterations),这个函数的参数是

第一个参数:img指需要腐蚀的图

第二个参数:kernel指腐蚀操作的内核,默认是一个简单的3X3矩阵,我们也可以利用getStructuringElement()函数指明它的形状

第三个参数:iterations指的是腐蚀次数,省略是默认为1


2、图像的膨胀

与腐蚀相反,与卷积核对应的原图像的像素值中只要有一个是1,中心元素的像素值就是1

所以这个操作会增加图像中的白色区域(前景)。一般在去噪声时先用腐蚀再用膨胀。

因为腐蚀在去掉白噪声的同时,也会使前景对象变小。所以我们再对他进行膨胀。这时噪声已经被去除了,不会再回来了,但是前景还在并会增加。

膨胀也可以用来连接两个分开的物体。

[python] view plain copy
  1. dilation = cv2.dilate(img,kernel,iterations = 1)  

3、图像的开运算

先进性腐蚀再进行膨胀就叫做开运算。就像我们上面介绍的那样,它被用来去除噪声。这里我们用到的函数是cv2.morphologyEx()

[python] view plain copy
  1. opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)  

4、图像的闭运算

先膨胀再腐蚀。它经常被用来填充前景物体中的小洞,或者前景物体上的小黑点。

[python] view plain copy
  1. closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel) 
查看评论

王志东说嘴打嘴

几天来,王志东离开新浪几乎成了IT界最大的热门事件。想不到王志东的口碑是这样好,看来,这位遭受不幸的创业者拥有着最广泛的同情和怜惜。确实,曾被人根据体形戏称为“肥而不腻”的王志东,正是一位凭自己的不懈...
  • stanely
  • stanely
  • 2001-06-07 15:12:00
  • 635

OpenCV-Python教程(4、形态学处理)

提示: 转载请详细注明原作者及出处,谢谢! 本文介绍使用OpenCV-Python进行形态学处理本文不介绍形态学处理的基本概念,所以读者需要预先对其有一定的了解。 定义结构元素 形态学处理的核心就...
  • sunny2038
  • sunny2038
  • 2013-06-23 10:17:04
  • 49583

条形码区域的提取--python(opencv)

条形码区域的提取--python(opencv) 参考资料:http://blog.jobbole.com/80448/ 1、检测步骤 (1)转化为灰度图 (2)使用Scharr操作(指定...
  • liyuqian199695
  • liyuqian199695
  • 2017-02-25 20:09:28
  • 834

erode

Erodes an image by using a specific structuring element. C++: void erode(InputArray src, OutputA...
  • wanglang3081
  • wanglang3081
  • 2013-12-22 21:15:51
  • 881

opencv学习——形态学运算

import cv2 import numpy as np import matplotlib.pylab as plt import scipy.misc as misc''' 腐蚀:根据卷积核的大...
  • ei1990
  • ei1990
  • 2017-10-26 20:10:06
  • 106

python opencv cv2 基础操作1

#coding=utf-8 import cv2 #cv2.__version__==3.2.0 import numpy as np #读取,显示,写 # img=cv2.imread('t...
  • xinfeng2005
  • xinfeng2005
  • 2017-04-01 08:58:18
  • 2735

python opencv cv2 基础操作2

#coding=utf-8 import cv2 #cv2.__version__==3.2.0 import numpy as np #2D convolution: Blurring[1/9...
  • xinfeng2005
  • xinfeng2005
  • 2017-04-13 10:10:33
  • 1336

opencv 图像形态学转换

图像形态学操作,例如腐蚀,膨胀,开运算,闭运算等
  • u010682375
  • u010682375
  • 2017-04-10 20:13:27
  • 756

python opencv检测目标颜色

# -*- coding:utf-8 -*- __author__ = 'kingking' __version__ = '1.0' __date__ = '14/07/2017' import cv...
  • Lingdongtianxia
  • Lingdongtianxia
  • 2017-07-15 23:56:27
  • 4499

python opencv形态学变换:腐蚀与膨胀

在学习这一部分之前,我们必须先有个明确的膨胀和腐蚀的概念,就上图而言,膨胀和腐蚀都是针对白色部分而不是黑色部分,膨胀就是白色区域扩大,腐蚀就是白色区域缩小 1、腐蚀 要进行腐蚀操作,我们要...
  • qq_37213964
  • qq_37213964
  • 2017-10-22 16:12:25
  • 755
    个人资料
    等级:
    访问量: 329
    积分: 196
    排名: 99万+
    文章存档