2017-01-09 46 views
0

我正在研究如何使用熱圖像進行溫度測量以用於醫療目的,我嘗試重複論文「面部和眼睛定位算法在熱圖像中的溫度測量」 眼睛的內眼角「。他們使用範圍爲0到40的熱像的規範化,他們得到了這個結果。範圍爲0到40的熱圖像的歸一化

enter image description here

我嘗試下面的代碼:

tt = imread('test.jpg'); 
figure, imshow(tt) 
tt = double(tt); 
normimg = uint8(zeros(size(tt))); 
for idx = 1 : 3 
chan = tt(:,:,idx); 
minvalue = min(chan(:)); 
maxvalue = max(chan(:)); 
normimg(:,:,idx) = uint8((chan-minvalue)*40/(maxvalue-minvalue)); 
end 
figure, imshow(normimg) 

,我得到了不同的結果,所以我應該怎麼做來獲得相同的結果 預先感謝您

enter image description here

+4

看那顏色條第二圖像。查看第二張圖像上的顏色條暗示的*顯示範圍*。 – nkjt

+0

是你的Jpeg圖像灰度?打開圖像並顯示它的方式讓我覺得是僞彩色的。 –

+0

添加到@nkjt。試試'imshow(normimg,[30 40])' –

回答

0

您應該先嚐試將其轉換爲2d矩陣(灰度),然後用40 *(X-Min)/(Ma x-Min)

+0

他的代碼已經做到了。檢查底部的第3行。 –

+0

我想在rgb規模上進行標準化,與研究論文相同 –

+0

謝謝@Meisam您的寶貴回覆,我嘗試了您的建議,我仍然得到相同的結果 –

0

你的規範化是好的,圖像是好的。重點在於「imshow」命令假定您的圖像在[0〜255]的範圍內,因此如果圖像的最大值爲40,則該圖像會變暗。要正確地看到圖像,把一個「[]」中imshow命令:

imshow(normimg,[]) 

,你也可以做整個工作在短短三行:

tt = imread('test.jpg'); 
normimg = 40 * mat2gray(tt); 
figure, imshow(normimg,[]);