Opencv-Python图像形态学操作

1.定义:

  • 膨胀(Dilated)
    在这里插入图片描述
  • 腐蚀(Eroded)
    黑色为腐蚀后的图像在这里插入图片描述
  • 开闭运算
    在这里插入图片描述
    2.腐蚀、膨胀示例:
import cv2
import numpy as np
img = cv2.imread('C:/1.jpg')

#OpenCV定义的结构元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3))

#腐蚀图像
eroded = cv2.erode(img,kernel)
#显示腐蚀后的图像
cv2.imshow("Eroded Image",eroded)

#膨胀图像
dilated = cv2.dilate(img,kernel)
#显示膨胀后的图像
cv2.imshow("Dilated Image",dilated)
#原图像
cv2.imshow("Origin", img)

#NumPy定义的结构元素
NpKernel = np.uint8(np.ones((3,3)))
Nperoded = cv2.erode(img,NpKernel)

#显示腐蚀后的图像
cv2.imshow("Eroded by NumPy kernel",Nperoded)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
3.cv2.morphologyEx(src, op, kernel) 进行开、闭各类形态学的变化

  • 参数说明:src:输入图片,op:进行变化的方式,kernel:表示框的大小
  • op = cv2.MORPH_OPEN 进行开运算,指的是先进行腐蚀操作,再进行膨胀操作,作用:用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积; op = cv2.MORPH_CLOSE 进行闭运算, 指的是先进行膨胀操作,再进行腐蚀操作,用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。
  • 开运算:表示的是先进行腐蚀,再进行膨胀操作;闭运算:表示先进行膨胀操作,再进行腐蚀操作。
import cv2
import numpy as np

img = cv2.imread('C:/1.jpg')
cv2.imshow('Origin',img)

#定义结构元素
kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(5, 5))

#闭运算
closed = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
#显示腐蚀后的图像
cv2.imshow("Close",closed)

#开运算
opened = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
#显示腐蚀后的图像
cv2.imshow("Open", opened)

cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
参考链接:
1.https://blog.csdn.net/qq_25847123/article/details/73744575
2.https://blog.csdn.net/sunny2038/article/details/9137759

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值