import cv2 #opencv读取的格式是BGR
import numpy as np
import matplotlib.pyplot as plt#Matplotlib是RGB
%matplotlib inline
# 读取
img=cv2.imread('lena.jpg')
img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
# 图像二值化
ret, thresh1 = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
# 膨胀与腐蚀分别展示
kernel = np.ones((3,3),np.uint8)
dilate = cv2.dilate(thresh1,kernel,iterations = 1)
erosion = cv2.erode(thresh1,kernel,iterations = 1)
res = np.hstack((dilate,erosion))
cv2.imshow('res', res)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 梯度=膨胀-腐蚀
gradient = cv2.morphologyEx(thresh1, cv2.MORPH_GRADIENT, kernel)
cv2.imshow('gradient', gradient)
cv2.waitKey(0)
cv2.destroyAllWindows()
膨胀与腐蚀分别展示

梯度=膨胀-腐蚀

梯度,轮廓,用圆来理解,大圆减小圆结果。

本文介绍了使用OpenCV进行图像处理的基本操作,包括将图像转换为灰度,进行二值化处理,然后应用膨胀和腐蚀操作。通过这些操作,可以突出图像的边界。进一步展示了膨胀与腐蚀的对比效果,以及通过梯度运算来揭示图像内部的结构变化。这些技术在图像分析和模式识别中具有重要应用。
1557

被折叠的 条评论
为什么被折叠?



