为什么熵函数在 MATLAB 中不起作用?

Why does Entropy function not working in MATLAB?

为了找到图像的熵,我首先使用了这个 matlab 代码

PIC = imread('c.bmp');

I = imhist(PIC);

C = I./sum(I);


bar(I)

E = entropy(C)

它给了我错误的结果,然后我使用了

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

它给了我正确的结果 谁能解释一下我在第一种情况下做错了什么?我是图像处理的新手。

有两种常用的熵形式:二元熵和自然熵(参见here)。它们仅在基数上有所不同:一种是基数 2,一种是基数 e。您所做的转换正是将一个转换为另一个所需要的。