簡體   English   中英

從圖像制作灰度熱圖

[英]make a grayscale heatmap from an image

我正在嘗試使用 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)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM