OpenCV-Python:形态学处理(腐蚀、膨胀、开闭运算、边缘检测)

一、定义结构元素

形态学处理的核心就是定义结构元素,在OpenCV-Python中,可以使用其自带的 getStructuringElement 函数,也可以直接使用 Numpy 的 ndarray 来定义一个结构元素。形象图如下:

如下代码:为上图的十字型结构。当然还可以定义椭圆和矩形等。

椭圆: cv2.getStructuringElement(cv.MORPH_ELLIPSE,(5,5))

矩形: cv2.getStructuringElement(cv.MORPH_RECT,(5,5))

element = cv2.getStructuringElement(cv2.MORPH_CROSS,(5,5))
print("elemrnt":element )
------------------------------------------------
import numpy as np
NpKernel = np.uint8(np.zeros((5,5)))
for i in range(5):
	NpKernel[2, i] = 1
	NpKernel[i, 2] = 1
print("NpKernel ",NpKernel )

上述结果输出(相同):
array([[0, 0, 1, 0, 0],
       [0, 0, 1, 0, 0],
       [1, 1, 1, 1, 1],
       [0, 0, 1, 0, 0],
       [0, 0, 1, 0, 0]], dtype=uint8)

二、腐蚀和膨胀

腐蚀:腐蚀会把物体的边界腐蚀掉,卷积核沿着图像滑动,如果卷积核对应的原图的所有像素值为1,那么中心元素就保持原来的值,否则变为零。主要应用在去除白噪声,也可以断开连在一起的物体。

膨胀:卷积核所对应的原图像的像素值只要有一个是1,中心像素值就是1。一般在除噪声时,先腐蚀再膨胀,因为腐蚀在去除白噪声的时候会使图像缩小,之后再进行膨胀。当然也可以用来将两者物体分开。

"""
腐蚀
cv2.erode(src,                     # 输入图像
	  kernel,                  # 卷积核
	  dst=None, 
	  anchor=None,
	  iterations=None,         # 迭代次数,默认1
	  borderType=None,
	  borderValue=None) 

膨胀
cv2.dilate(src,                    # 输入图像
           kernel,                 # 卷积核
           dst=None, 
           anchor=None, 
           iterations=None,        # 迭代次数,默认1
           borderType=None, 
           borderValue=None)
"""

import cv2
import numpy as np
original_img = cv2.imread('flower.png')
res = cv2.resize(original_img,None,fx=0.6, fy=0.6,
                 interpolation = cv2.INTER_CUBIC) #图形太大了缩小一点
B, G, R = cv2.split(res)                    #获取红色通道
img = R
_,RedThresh = cv2.threshold(img,160,255,cv2.THRESH_BINARY)
#OpenCV定义的结构矩形元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))
eroded 
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值