1234import cv2 as cvimport numpy as npimport matplotlib.pyplot as pltimport ipykernel 12345678910111213#礼帽 = 原图像 - 开运算,即原图像减去我们加强过的图像,就剩下轮廓噪音#黑帽 = 闭运算 - 原始图像,噪音减去噪音,应该只留下了轮廓img = cv.imread("def.jpg", cv.IMREAD_COLOR)kernel = np.ones((5, 5), np.uint8)topHat = cv.morphologyEx(img, cv.MORPH_TOPHAT, kernel)blackHat = cv.morphologyEx(img, cv.MORPH_BLACKHAT, kernel)titles = ['Original', 'Top Hat', 'Black Hat']images = [img, topHat, blackHat]for i in range(3): plt.subplot(1, 3, i+1), plt.imshow(images[i], 'gray') plt.title(titles[i]) plt.xticks([]), plt.yticks([])plt.show()