开闭操作

开操作:先腐蚀后膨胀  作用:删除小的干扰块

闭操作:先膨胀后腐蚀

先看一下开操作的运用:

应用一:去除背景杂线

首先将图片处理成二值图像

src = cv.imread("D:/pythonTest/img/16.jpg")
gray = cv.cvtColor(src,cv.COLOR_BGR2GRAY)
ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU)
cv.imshow("binary",binary)

我们需要把横线去除,单独显示出字符。这在图片背景预处理方面非常有用。

 

二、进行开操作

k = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
dst1 = cv.morphologyEx(binary,cv.MORPH_OPEN,k,iterations=1)
#dst2 = cv.morphologyEx(binary, cv.MORPH_CLOSE, k, iterations=1)  #闭操作,暂不起作用
cv.imshow("result",dst1)

得到结果如下:

效果还是可以的。

 

应用二:提取水平线和垂直线

同样先化成二值图像:

src = cv.imread("D:/pythonTest/img/18.jpg")
gray = cv.cvtColor(src,cv.COLOR_BGR2GRAY)
ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU)
cv.imshow("binary",binary)

这里选用的图片是

然后进行用开操作提取水平线:

k = cv.getStructuringElement(cv.MORPH_RECT,(30,1))
dst1 = cv.morphologyEx(binary,cv.MORPH_OPEN,k,iterations=2)
cv.imshow("result",dst1)

可以看到这里选用的模板形状是(30,1)的矩形。得到如下结果:

如果将模板形状改成(1,30),就可以得到垂直线了:

k = cv.getStructuringElement(cv.MORPH_RECT,(1,30))
dst1 = cv.morphologyEx(binary,cv.MORPH_OPEN,k,iterations=2)
cv.imshow("result",dst1)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值