2017-06-19 9 views
0

ピクセルの強度が0-1の範囲にある画像Iがあります。画像のヒストグラムを正規化することで計算できますが、曲線は生データのヒストグラムとまったく同じではありません。これは、後のピーク検出プロセス(添付の2つの画像を参照)のために問題を引き起こします。 Histogram of Normalized data,2 peaks has been found on the histogramMatlabでデータを正規化せずに画像ヒストグラムを計算する方法

私の質問はMatlabです。データを正規化せずに画像ヒストグラムをプロットする方法はありますか?カーブの形状を変更しないでください。これは、ピクセルの輝度が0〜1の範囲内にないときに、それらの生の画像に役立ちます。現在、データを正規化しないとヒストグラムを計算できません。

正規化とヒストグラム計算のためのMatlabコードが添付されています。どんな提案も感謝します!

h = imhist(mat2gray(I)); 
+3

あなたは[ヒストグラム](https://www.mathworks.com/help/matlab/ref/histogramを試してみました。 html)? – beaker

+1

私は混乱しています。私はここで2つのヒストグラムを見る。 1つは約160〜240の値を持ち、もう1つは正規化後のヒストグラムのようなものです。最初のヒストグラムを計算できない場合、どのようにして最初のヒストグラムを得ましたか? – Piglet

+0

@ピグレットここに記載したデータは、生データが0-1の範囲に入るデータです。私は生データが0-1の範囲に収まらない他のデータを持っています。これは、前後のカーブが異なると言う単なる例です。 – SimaGuanxing

答えて

0
Documentation of imhist

関数は、入力のデータ・タイプをチェックし、それに応じて値をスケーリングすることを教えてくれる。したがって、あなたの添付データでテストせず、これは動作可能性があります

h = imhist(uint8(I)); 

アンは、代わりにあなたはmat2gray

h = imhist(mat2gray(I, [0,255])); 

か、単に除算のいずれかを使用して引数で、浮動小数点表現に整数表現をスケーリングすることができますそれ。

h = imhist(I/255); 
0

正規化またはキャスティングを記述するこのスレッドのimhistの回答は完全に正確です。また、あなたは非正規化浮動小数点データで作業れるMATLABでヒストグラム機能を使用できます。

A = 255*rand(500,500); 
histogram(A); 
関連する問題