Red de conocimiento informático - Espacio del host - No tengo una función de entropía en Matlab. Estoy buscando el código fuente en línea. Si es así, publíquelo.

No tengo una función de entropía en Matlab. Estoy buscando el código fuente en línea. Si es así, publíquelo.

función E = entropía(varargin)

ENTROPÍA Entropía de la imagen de intensidad.

E = ENTROPÍA(I) Devuelve E, uno representa ENTROPÍA(I) Devuelve E, uno representa la entropía de la imagen de intensidad valor escalar

. La entropía es una medida estadística de aleatoriedad que se puede utilizar

para describir la textura de una imagen de entrada. La entropía se define como -sum(p.*log2(p)) donde p contiene los recuentos de histogramas devueltos por IMHIST.

ENTROPY utiliza 2 contenedores para matrices lógicas y 256 contenedores para

matrices uint8, double o uint16 en IMHIST. Si I tiene más de dos dimensiones,

se tratará como una imagen de intensidad multidimensional en lugar de una imagen RGB.

Apoyo de clase

----- --------

Debo ser lógico, uint8, uint16 o double, y debe ser real, no nulo,

y no disperso. E es doble.

Notas

-----

ENTROPY convertirá cualquier clase que no sea una clase lógica a uint8 para histogramas

cuenta los cálculos para que los valores de píxeles sean discretos y correspondan directamente

a un valor bin.

Ejemplo

-------

I = imread('circuit.tif'); >

E = entropía(I)

Véase también IMHIST, ENTROPYFILT.

Copyright 1993-2007 The MathWorks, Inc.

$Revisión: 1.1.8.4 $ $Fecha.2007/06/04 21:08:49 $ $

Referencias:

González, R.C., R.E Woods, S.L. , "Procesamiento de imágenes digitales

usando MATLAB", Capítulo 11.

I = ParseInputs(varargin{:});

if ~islogic(I )

I = im2uint8(I);

end

Calcular el recuento del histograma

p = imhist(I (:) );

Eliminar cero entradas en p

p(p==0) = [];

Normalizar p, sea suma(p) uno.

p = p ./ numerel(I

E = -sum(p.*log2(p)); p>función I = ParseInputs(varargin)

iptchecknargin(1, 1, nargin, mfilename);

iptcheckinput(varargin{1}, {'uint8', 'uint16', 'doble', 'lógico'}, ....

{'real', 'nonempty', 'nonsparse'}, mfilename, 'I', 1);

I = varargin{1};