Почему эти изображения имеют одинаковую энтропию?

Почему эти два изображения имеют одинаковую энтропию?

Эти изображения создаются в 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. Мне трудно поверить, что эти изображения имеют такое же «количество случайностей», поскольку мы видим, что одно на них сильно упорядочено, а другое совершенно случайно. И что?


person Filippo Pannavich    schedule 01.09.2014    source источник
comment
Я никогда не использовал эти команды, но p, будучи величиной, полученной из imhist, звучит для меня так, как будто энтропия определяется по цветам. При этом не имеет значения, где расположены пиксели. Если вы не понимаете, что я имею в виду, взгляните на результат imhist.   -  person fuesika    schedule 01.09.2014


Ответы (1)


Это связано с тем, что функция entropy вычисляет энтропию нулевого порядка1 (эмпирическую). Это означает, что пиксели рассматриваются изолированно, без сравнения их с окружающими пикселями.

Таким образом, структура, которую вы видите на втором изображении (цвет пикселя зависит от окружающих пикселей), не принимается во внимание. Вместо этого при вычислении учитывается только пропорция (возвращаемая функцией imhist) черных и белых пикселей; и эта пропорция примерно одинакова на обоих изображениях.

Вы также можете увидеть это таким образом: пространственная структура теряется при вычислении энтропии (нулевого порядка), точно так же, как пространственные отношения между пикселями теряются при вычислении гистограммы изображения.

В качестве примечания, результирующая энтропия на самом деле немного меньше 1 в Z1 с высокой вероятностью, потому что энтропия нулевого порядка максимальна, когда пропорция ровно 1/2. Попробуйте с format long и вы увидите что-то вроде:

>> format long
>> entropy(Z1)
ans =
   0.999663421925701
>> entropy(Z2)
ans =
     1

1 Это также можно назвать энтропией первого порядка. Называть ее "нулевым порядком" имеет смысл с точки зрения цепей Маркова, поскольку цепь Маркова нулевого порядка дает статистически независимые значения. С другой стороны, название "первого порядка" имеет смысл с точки зрения статистических распределений . Распределение первого порядка случайного процесса определяет вероятности возможных значений в данный момент/положение без учета статистической связи со значениями в другие моменты/положения.

person Luis Mendo    schedule 01.09.2014
comment
Спасибо! Да, те изображения, где просто объяснить мои мысли. Я анализировал временные ряды, и энтропия считается мерой сложности. Он вычисляется как скорость -log повторения определенных шаблонов длины N при повторении определенных шаблонов длины N + 1 в сигнале. Это даже близко не похоже (хотя это и называется энтропией), на самом деле энтропия должна помочь нам отличить случайное содержимое от высоко (или более) информативного содержания; тогда есть ли способ учесть повторение пространственных паттернов? - person Filippo Pannavich; 01.09.2014
comment
Я знаю только общее определение одномерного процесса (временного ряда), которое вы упомянули. Расширение до 2D кажется концептуально простым, но его может быть трудно реализовать. Я не знаю ни одной встроенной функции Matlab, которая вычисляет даже истинную энтропию в случае 1D. - person Luis Mendo; 01.09.2014