我有一个名为arnold 2-D地图的算法,它只会置换图像的像素,并且不会改变像素的值。 但是当我计算主图像和加密版本的熵值时,值会变得不同。我无法理解这一点,因为熵的公式只涉及图像中像素值的概率,并且在应用猫图之后保持相同,所以为什么熵会发生变化。 有人可以提供帮助
答案 0 :(得分:2)
让我们来看看matlab函数熵:
edit entropy
- >
I = im2uint8(I);
p = imhist(I(:));
% remove zero entries in p
p(p==0) = [];
% normalize p so that sum(p) is one.
p = p ./ numel(I);
E = -sum(p.*log2(p));
因此它根据图像的直方图计算熵。所有空间数据都将丢失。你是对的,在任何不影响强度值的变换中,熵都不应该改变。另请注意,在计算熵之前,数据类型已更改为uint8,因此应截断任何可能的浮点错误等。
离开阿诺德地图。我建议你看看它,可能有一个错误,图像溢出或丢失的像素。