为什么这两个图像具有相同的熵?
这些图像在MATLAB中创建如下:
N = 50;
Z1 = randi([0 1],N);
Z2 = zeros(N);
Z2(1:2:N,1:2:N) = 1;
Z2(2:2:N,2:2:N) = 1;
subplot(1,2,1)
imshow(Z1,'InitialMagnification',800)
subplot(1,2,2)
imshow(Z2,'InitialMagnification',800);
他们的"熵"计算如下:
entropy(Z1)
entropy(Z2)
结果等于1.0000。
在帮助中,熵等于-sum(p。* log2(p)),其中p是从imshist返回的计数器。 我觉得很难相信这些图片具有相同的随机性"因为我们看到他们中的一个是高度有序的而另一个是完全随机的。那是什么?
答案 0 :(得分:0)
那是因为entropy
函数计算零阶 1 (经验)熵。这意味着以隔离方式查看像素,而不将它们与周围像素进行比较。
因此,您不会考虑在第二个图像中看到的结构(像素的颜色取决于周围像素的)。相反,计算仅考虑黑色和白色像素的比例(由imhist
返回);两个图像中的比例大致相同。
你也可以这样看:计算(零级)熵时空间结构会丢失,就像计算图像直方图时像素之间的空间关系一样。
作为旁注,得到的熵实际上在Z1
中略高于1,概率很高,因为当比例恰好是1/2时,零阶熵最大化。尝试使用format long
,您会看到类似的内容:
>> format long
>> entropy(Z1)
ans =
0.999663421925701
>> entropy(Z2)
ans =
1
1 这也可称为一阶熵。称之为零排序"从马尔可夫链的角度来看是有意义的,因为零阶马尔可夫链产生统计独立的值。另一方面,名称"一阶"从统计分布的角度来看是有道理的。随机过程的一阶分布定义了给定时刻/位置的可能值的概率,而没有考虑与其他时刻/位置的值的统计关系。