Opencv-Python图像形态学操作

1.定义:

  • 膨胀(Dilated)
    Opencv-Python图像形态学操作_第1张图片
  • 腐蚀(Eroded)
    黑色为腐蚀后的图像Opencv-Python图像形态学操作_第2张图片
  • 开闭运算
    Opencv-Python图像形态学操作_第3张图片
    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()

Opencv-Python图像形态学操作_第4张图片
参考链接:
1.https://blog.csdn.net/qq_25847123/article/details/73744575
2.https://blog.csdn.net/sunny2038/article/details/9137759

你可能感兴趣的:(经典图像处理,Opencv,图像形态学操作,腐蚀,膨胀的定义)