2016-11-27 6 views
1

ii = cumsum(cumsum(image, 2), 1)を使用して、指定された画像の積分画像を計算しました。私の授業では、正規化されたIntegral Imageをプロットするように質問されました。ほとんどの値が255より大きく、明るいイメージが得られるので、私は本当に混乱しました。では、正規化されたIntegral Imageをプロットする方法は?正規化積分画像

+0

あなたが試したことを示すことはできますか? – rapvelopment

+0

それで私の答えは助けになりましたか? – rayryeng

答えて

0

イメージを正規化するだけです。動作は、第1あなたが[0,1]の範囲内に正規化され、その後、あなたは[0,255]に拡大することを前提としてい

ii_norm = 255*(ii - min(ii(:)))/(max(ii(:)) - min(ii(:))); 

:255 - あなたはMATLABを使用しているように0の間でこれだけの値を正規化し、新しいイメージを作成し、見えます後に。あなたがイメージとしてこれを表示したいので、uint8としてこれをキャストすることを忘れないでください:

ii_norm = uint8(ii_norm); 

しかし、あなたは彼らがとにかく上記の範囲に準拠するように自動的に値をスケールするimagescを使用することができます。しかし、imagescは、独自の色で強度を色付けするカラーマップを使用して画像を表示します。私はあなた自身が実際の強度値を表示したいと思うかもしれないと思うので、colormapに電話をかけ、これを行うにはgrayに設定する必要があります。さらに、imshowを使用して、2番目のパラメータを空にしてこのスケーリングに役立てることができます。imshow(ii, []); ...実際には、スケールする必要は全くありません。画像をファイルに書きたいと思ったら、あなたはそうするでしょう。

imagesc(ii); colormap('gray'); 
% or 
%imshow(ii,[]); 

...と上記自動的に浮動小数点の場合は[0,255]または[0,1]の範囲に画像を拡大縮小します:

は、単に行います。

左上が0またはゼロに近い勾配が増加する画像があります。右下に近づくと、画像は完全に白くなる点まで輝度が上がり始めますあなたが画像の右下に近づくにつれて、積分画像は、画像の左上から空間座標(x,y)までの面積を計算することに注意してください。

また、あなたのイメージのサイズに応じて積分画像の値が非常に迅速にいっぱいありますので、同様ログ正規化強度画像を表示することが有用であり得る:

imagesc(log(1 + ii)); colormap('gray'); 
% or 
imshow(log(1 + ii), []); 

これは与えます左上から右下に向かって掃引するにつれて、より均一な強度の分布が得られます。