1
2
3
4
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
import ipykernel
1
2
3
4
5
6
7
8
9
10
11
12
13
#礼帽 = 原图像 - 开运算,即原图像减去我们加强过的图像,就剩下轮廓噪音
#黑帽 = 闭运算 - 原始图像,噪音减去噪音,应该只留下了轮廓
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()


png