2017-01-09 9 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

ルック適切に画像を表示するには、「[]」関数imshowコマンドでを置きます。 2番目の画像のカラーバーに含まれる*表示範囲*を見てください。 – nkjt

+0

Jpegイメージはグレースケールですか?あなたがイメージを開いてそれを表示する方法は、私が疑似カラーであると思うようにします。 @nkjtに追加する –

+0

。 'imshow(normimg、[30 40])'を試してください –

答えて

0

ありがとう 同じ結果を得るために何をすべきかので、異なる結果を得ました最初にそれを2d行列(グレースケール)に変換して、40 *(X-Min)/(Ma x-Min)

+0

彼のコードはすでにこれを行っています。下から3行目を確認してください。 –

+0

私は研究紙と同じrgbスケールで正規化したい –

+0

あなたの貴重な回答のために@Meisamありがとう、私はあなたの提案を試みたと私はまだ同じ結果を得る –

0

あなたの正規化はOKで、イメージは正常です。重要なのは、 "imshow"コマンドはあなたの画像が範囲[0〜255]にあると仮定しているので、画像の最大値が40の場合、画像は暗くなります。

imshow(normimg,[]) 

そしてまた、あなたはたった3行で全体の仕事を行うことができます:第二の画像のカラーバーで

tt = imread('test.jpg'); 
normimg = 40 * mat2gray(tt); 
figure, imshow(normimg,[]); 
関連する問題