OpenCV中的腐蚀和膨胀操作

OpenCV中的腐蚀和膨胀操作

#形态学转换
#侵蚀、膨胀、开运算、闭运算等
import cv2
import numpy as np

‘’’
#侵蚀:侵蚀前景物体的边界(尽量使前景保持白色)
#内核滑动通过图像(在2D卷积中),原始图像中的一个像素只有当内核下的所有像素都是1时才被认为是1,否则其被侵蚀为0
#有助于去除小的白色噪声,分离两个连接的对象
img = cv2.imread(‘C:\Users\Administrator\Desktop\qq.png’)
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img = 255-img #将前景改为白色
ret,threshold = cv2.threshold(img,120,255,cv2.THRESH_BINARY)

kernel = np.ones((5,5),np.int8)
erosion = cv2.erode(threshold,kernel,iterations=1)
cv2.imshow(‘qq1’,threshold) #原图
cv2.imshow(‘qq2’,erosion) #侵蚀之后的图
cv2.waitKey(0)
‘’’

#膨胀:增加图像中的白色区域或者增加前景对象的大小
#原始图像中的一个像素,当内核下至少有一个像素为1,则原始图像中的该像素设为1
img = cv2.imread(‘C:\Users\Administrator\Desktop\qq.png’)
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img = 255-img #将前景改为白色
ret,threshold = cv2.threshold(img,120,255,cv2.THRESH_BINARY)

kernel = np.ones((5,5),np.int8)
dilation = cv2.dilate(threshold,kernel,iterations=1)
cv2.imshow(‘qq1’,threshold) #原图
cv2.imshow(‘qq2’,dilation) #膨胀之后的图
cv2.waitKey(0)

#开运算:先侵蚀,再膨胀
#通常,在消除噪声的情况下,腐蚀之后会膨胀。因为腐蚀会消除噪声,但是也会缩小物体。
#因此,对其进行膨胀。由于噪声消失了,它们不会回来,在连接对象的损坏部分时也很有用。

#闭运算:先膨胀,再侵蚀
#在关闭前景对象内部的小孔或者前景对象上的小黑点时很有用
demo中用到的图片

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值