3

私はMATLABで特定の確率分布のエントロピーを見つけようとしていました。pについては、やってみました

E = -sum(p .* log2(p))

Echeck = entropy(p)

EとEcheckは同じであるべきではありませんか?

エントロピーに関するmatlabヘルプでは、エントロピーは-sum(p。* log2(p))として定義されています。ここで、pにはimhistから返されたヒストグラムカウントが含まれますが、エントロピーは、ヒストグラムカウントの計算のために論理以外のクラスをuint8に変換します。実際には、グレースケール画像のエントロピーを計算しようとしているため、ピクセル値を離散化する必要があります。それで、この関数を私の目的に使用するのは間違っていると思いますか?良い選択肢はありますか?

4

1 に答える 1

3

open entropyはコードをチェックしていましたが、次の行があります。

if ~islogical(I)
  I = im2uint8(I);
end
p = imhist(I(:));

これは、入力が uint8 に変換され、関数が入力自体ではなく、入力のヒストグラムのエントロピーを計算することを意味します。

それが違いを説明しています。

于 2012-01-26T11:11:33.140 に答える