我有這樣的圖像 和相應的背景圖像。 在圖像頂部提取熱圖
我想提取第一個圖像的熱圖。我的第一個方法是掩蓋,這是不是「等於不夠」(閾值處理每一個像素之間的歐氏距離)的每一個像素,但效果還不夠好
看起來像在圖像處理一個簡單的問題,但我缺乏經驗。謝謝!
我有這樣的圖像 和相應的背景圖像。 在圖像頂部提取熱圖
我想提取第一個圖像的熱圖。我的第一個方法是掩蓋,這是不是「等於不夠」(閾值處理每一個像素之間的歐氏距離)的每一個像素,但效果還不夠好
看起來像在圖像處理一個簡單的問題,但我缺乏經驗。謝謝!
獲取的確切熱圖是一個高度非平凡問題,因爲熱圖用的透明度不同水平的重疊。
這意味着每個像素有兩個未知數:
如果粗略的分割足夠了,我建議通過顏色強度進行簡單的閾值處理。你可以看到,熱圖的強區是由一個強大的,藍色包圍:
I = imread('https://i.stack.imgur.com/7oVZK.png');
% Simple, manual color thresholding
mask1 = I(:,:,3) > 230 & I(:,:,1) < 30 & I(:,:,2) < 10;
現在我們擴張面具關閉藍色熱圖邊界的任何孔和填補漏洞:
% Morphological processing
mask2 = imdilate(mask1, strel('disk',5,0));
mask2 = imfill(mask2, 'holes');
最後,我們可以提取熱圖:
% Extract heat map
heat_map = I;
heat_map(~repmat(mask2,[1 1 3])) = 255;
imshow(heat_map)
這裏是Result
編輯:如果你要處理許多類似的圖像,它可能是更強大的執行在HSV空間分割:
I_hsv = rgb2hsv(I);
mask1 = I_hsv(:,:,1) > 0.6 & I_hsv(:,:,1) < 0.7 & I_hsv(:,:,2) > 0.95 & I_hsv(:,:,3) > 0.9;
謝謝!順便說一句,你能解釋更多關於HSV空間分割嗎? –
當然。如果您想使用藍色進行分割(如圖所示),那麼RGB空間中的閾值將取決於照明(亮度)。在[HSV](https://en.wikipedia.org/wiki/HSL_and_HSV)顏色空間中,您可以直接對色調值執行閾值處理,並對飽和度和值進行一些限制(顯示在我的答案的最後一行)。 – Richard
你有沒有通過算法熱圖最初添加任何想法到圖像上? – Wysaard
這可能是您的問題的答案:http://stackoverflow.com/questions/2139350/what-is-the-formula-for-extracting-the-src-from-a-calculated-blendmode – Dima