我有四個注意力圖,每個維度為 217 x 217,以 float64 陣列的形式。我需要使用這些注意力圖執行操作并保存最終的注意力圖,其中僅存在具有最高激活的像素。在這方面需要自定義函式。附上熱圖:

入門代碼在這里:
import cv2
import numpy as np
import os
from PIL import Image
im1 = np.array(Image.open("heatmap1.png").convert('L'))
im2 = np.array(Image.open("heatmap2.png").convert('L'))
im3 = np.array(Image.open("heatmap3.png").convert('L'))
im4 = np.array(Image.open("heatmap4.png").convert('L'))
#compute to save only the pixels with the highest activation
#save final heatmap as a PNG file
cv2.imwrite("final_heatmap.png", bitwise_AND)
uj5u.com熱心網友回復:
要計算兩個影像之間的像素最大值,請使用np.maximum(im1, im2)。按位邏輯 AND 僅對布林值給出最大值,但不能推廣到灰度值。
要在四個影像中找到像素最大值,請使用帶有成對運算子的金字塔方案:
out1 = np.maximum(im1, im2)
out2 = np.maximum(im3, im4)
out = np.maximum(out1, out2)
如果您愿意覆寫輸入,則可以更有效地執行上述操作:
np.maximum(im1, im2, out=im1)
np.maximum(im3, im4, out=im3)
np.maximum(im1, im3, out=im1) # im1 now has the result
uj5u.com熱心網友回復:
你可以使用numpy的內置函式
logical_and
bitwise_or
bitwise_xor
binary_repr
示例用法如下
np.bitwise_and(arr1, arr2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370730.html
標籤:Python 麻木的 opencv 图像处理 按位运算符
下一篇:從多個列索引創建多行
