我正在尝试使用 cv2 从灰度图像制作热图。问题是,我用这个代码得到了一个奇怪的图像:
import cv2
import numpy as np
img = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('img', img)
cv2.waitKey(0)
hist = cv2.calcHist([img], [0], None, [256], [0, 256])
hist2 = np.uint8(hist)
heat = cv2.LUT(img, hist2)
cv2.imshow('img', heat)
cv2.waitKey(0)
cv2.destroyAllWindows()
不知道热图是什么意思,但是 matplotlib 中有一些颜色图可以用来获得类似的结果。
import matplotlib.pyplot as plt
import numpy as np
import cv2
image = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
colormap = plt.get_cmap('inferno')
heatmap = (colormap(image) * 2**16).astype(np.uint16)[:,:,:3]
heatmap = cv2.cvtColor(heatmap, cv2.COLOR_RGB2BGR)
cv2.imshow('image', image)
cv2.imshow('heatmap', heatmap)
cv2.waitKey()
此外,您可以使用 cv2.applyColorMap
image = cv2.imread('test.jpg', 0)
heatmap = cv2.applyColorMap(image, cv2.COLORMAP_HOT)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句