1.op = cv2.GRADIENT 用于梯度运算-膨胀图像-腐蚀后的图像
梯度运算:表示的是将膨胀以后的图像 - 腐蚀后的图像,获得了最终的边缘轮廓
代码:
第一步:读取pie图片
第二步:进行腐蚀和膨胀操作
第三步:将膨胀的图像 - 腐蚀的图像,获得相减得图像
第四步:使用cv2.morphologyEx(src, cv2.GRADIENT, kernel) 获得梯度运算的图片的操作
第五步:绘制第三步和第四步生成的图片
import cv2 import numpy as np # 第一步:读取图片 pie = cv2.imread('pie.png')
# 第二步:绘制腐蚀和膨胀图片 kernel = np.ones((5, 5), np.uint8) erosion = cv2.erode(pie, kernel, iterations=2) dilate = cv2.dilate(pie, kernel, iterations=2) # 第三步:相减获得对应的图片 decrease = dilate - erosion print(decrease.shape) cv2.imshow('pie', pie) cv2.waitKey(0) cv2.destroyAllWindows() # 第四步:使用cv2.MORPH_GRADIENT获得梯度运算的图片 gradient = cv2.morphologyEx(pie, cv2.MORPH_GRADIENT, kernel, iterations=2) # 第五步:绘制两者的图片 cv2.imshow('gradient', np.hstack((decrease, gradient))) cv2.waitKey(0) cv2.destroyAllWindows()