opencv学习笔记(16)膨胀与腐蚀

写在前面

1.膨胀和腐蚀可以分别理解为”高值滤波“和”低值滤波“。膨胀之后,白色(高值)多了,黑色(低值)少了;腐蚀之后,黑色(低值)多了,白色(高值)少了。
膨胀:
在这里插入图片描述
腐蚀:在这里插入图片描述

2。膨胀腐蚀不仅仅可以用于单通道图像,一样适用于三通道的RGB图像。本篇博客将图像二值化,只是为了方便理解和效果呈现。

膨胀

膨胀的作用:

1.对象大小增加一个像素(3×3)
2.平滑对象边缘
3.减少或者填充对象之间的距离

API演示

#coding=UTF-8
import cv2 as cv
import numpy as np

def dilate_demo(image):
   print(image.shape)
   gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
   ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
   cv.imshow("binary",binary)
   kernel = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
   dst = cv.dilate(binary,kernel)
   cv.imshow("dilate image",dst)

scr = cv.imread("D:/academic/picture/opencv_data/LinuxLogo.jpg")
cv.imshow("input image",scr)
dilate_demo(scr)
cv.waitKey(0)
cv.destroyAllWindows()

效果演示:

在这里插入图片描述
可以看到,白色的部分被”膨胀“了。

腐蚀

腐蚀的作用

1.对象大小减少一个像素(3×3)
2.平滑对象边缘
3.弱化或者分割图像之间的半岛型连接

API演示

#coding=UTF-8
import cv2 as cv
import numpy as np

def erode_demo(image):
   print(image.shape)
   gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
   ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
   cv.imshow("binary",binary)
   kernel = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
   dst = cv.erode(binary,kernel)
   cv.imshow("erode image",dst)

scr = cv.imread("D:/academic/picture/opencv_data/LinuxLogo.jpg")
cv.imshow("input image",scr)
erode_demo(scr)
cv.waitKey(0)
cv.destroyAllWindows()

效果演示:

在这里插入图片描述
可以看到,白色部分被”腐蚀“了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值