1、opencv的形态学函数模块里morphologyEx函数提供了MORPH_GRADIENT让我们能够完成梯度运算。数学方法:膨胀操作与腐蚀的差。具体实现有两种:1)morphologyEx2)根据定义: 膨胀 - 腐蚀下面分别进行讨论。此图为原图和叠加效果

2、还是以火箭为例import numpy as npimport cv2 as cvimport copyimage = cv.imread('c:\\rocket.jpg')cv.imshow("image", image)gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)cv.imshow("gray", gray)转成灰度

4、kernel = cv.getStructuringElement(cv.MORPH_CROSS,(5, 5))垆杪屑丝#腐蚀图像erodImg = cv.erode(thresholdImg, kernel)#显示腐蚀后的图像cv.imshow("erodImg1", erodImg)#膨胀图像dilateImg = cv.dilate(thresholdImg, kernel)#显示膨胀后的图像cv.imshow("dilateImg1", dilateImg)

5、方法一:# 形态学梯度gradientImg = cv.morphologyEx(thresholdImg, cv.MORPH_GRADIENT, kernel)cv.imshow("gradientImg", gradientImg)

7、#对二值图每个像素取反 方便叠加notImg = cv.bitwise_not(gradientImg)cv.imshow(&鳎溻趄酃quot;notImg", notImg)叠加效果1andImg1 = cv.bitwise_and(image, image, mask=gradientImg)cv.imshow("andImg1", andImg1)叠加效果2andImg2 = cv.bitwise_and(image, image, mask=notImg)cv.imshow("andImg2", andImg2)cv.waitKey(0)cv.destroyAllWindows()

