PILとcv 2をそれぞれ使用して人込み密度図を描画


pred変数はネットワーク出力の単一チャネル密度図である.密度マップを描くときには、cpuでサポートされているnumpyフォーマットに変換する必要があります.
1.PILで描画
import matplotlib.pyplot as plt
plt.imshow(pred, cmap=plt.cm.jet)
plt.show()

この描画方法は座標系を持参し、この座標系はピクチャの実際の画素点を占有し、出力の密度マップサイズが入力ピクチャのサイズと一致しない.しかし、密度効果を見るだけなら、この方法はお勧めです.
2.cv 2を使用して描画
import cv2
heatmapshow = None
heatmapshow = cv2.normalize(pred, heatmapshow, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)
heatmapshow = cv2.applyColorMap(heatmapshow, cv2.COLORMAP_JET)
cv2.imshow("Heatmap", heatmapshow)
cv2.waitKey(0)

ネットワーク出力のpred行列の値はいずれも小さくnp.float 64の浮動小数点数であり,cv 2は[0255]区間の数を処理することを知っているので,直接cv 2で示すか保存すると黒っぽい図である.
plt.imshow内部はpredを正規化し、色マッピングを適用して熱力図の効果を示す.だからcv 2でもこの2つのステップが必要です:帰一(cv 2.normalize)と色彩マッピング(applyColorMap)plt.imshowの中のcmapパラメータはcv 2.applyColorMapの中のcv 2.COLORMAP_に等価です色を指定するJETパラメータ.
参照先:
https://blog.csdn.net/hxydip/...