Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

deconvlucy

Imagen Deblur utilizando el método Lucy-Richardson

Descripción

ejemplo

J = deconvlucy(I,psf) restaura la imagen degradada por convolución con una función de propagación de puntos (PSF) y, posiblemente, por ruido aditivo.Ipsf El algoritmo se basa en maximizar la probabilidad de que la imagen resultante sea una instancia de la imagen original bajo estadísticas de Poisson.JI

Para mejorar la restauración, soporta varios parámetros opcionales, descritos a continuación.deconvlucy Se utiliza como marcador de posición si no se especifica un parámetro intermedio.[]

J = deconvlucy(I,psf,iter) especifica el número de iteraciones,.iter

J = deconvlucy(I,psf,iter,dampar) controla la amplificación de ruido suprimiendo las iteraciones de los píxeles que se desvían una pequeña cantidad en comparación con el ruido, especificado por el umbral de amortiguación.dampar De forma predeterminada, no se produce ninguna amortiguación.

J = deconvlucy(I,psf,iter,dampar,weight) Especifica qué píxeles de la imagen de entrada se consideran en la restauración.I El valor de un elemento de la matriz determina cuánto se considera el píxel en la posición correspondiente de la imagen de entrada.weight Por ejemplo, para excluir un píxel de la consideración, asígnele un valor de la matriz.0weight Puede ajustar el valor de peso asignado a cada píxel de acuerdo con la cantidad de corrección de campo plano.

J = deconvlucy(I,psf,iter,dampar,weight,readout) especifica el ruido aditivo (p. ej., el fondo, el ruido de primer plano) y la varianza del ruido de la cámara de lectura.readout

J = deconvlucy(I,psf,iter,dampar,weight,readout,subsample) utiliza el submuestreo cuando el PSF se da en una rejilla que es más fina que la imagen.subsample

Ejemplos

contraer todo

Cree una imagen de muestra y desdifumina.

I = checkerboard(8); PSF = fspecial('gaussian',7,10); V = .0001; BlurredNoisy = imnoise(imfilter(I,PSF),'gaussian',0,V);

Cree una matriz de pesos y llame a deconvlucy utilizando varios parámetros opcionales.

WT = zeros(size(I)); WT(5:end-4,5:end-4) = 1; J1 = deconvlucy(BlurredNoisy,PSF); J2 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V)); J3 = deconvlucy(BlurredNoisy,PSF,20,sqrt(V),WT);

Mostrar los resultados.

subplot(221);imshow(BlurredNoisy); title('A = Blurred and Noisy'); subplot(222);imshow(J1); title('deconvlucy(A,PSF)'); subplot(223);imshow(J2); title('deconvlucy(A,PSF,NI,DP)'); subplot(224);imshow(J3); title('deconvlucy(A,PSF,NI,DP,WT)');

Argumentos de entrada

contraer todo

Imagen borrosa, especificada como una matriz numérica de cualquier dimensión. También puede especificar la imagen como una matriz de celdas para habilitar las iteraciones interrumpidas. Para obtener más información, consulte.Consejos

Tipos de datos: single | double | int16 | uint8 | uint16

PSF, especificado como una matriz numérica. También puede especificar como matriz de celdas para habilitar iteraciones interrumpidas.psf Para obtener más información, consulte.Consejos

Tipos de datos: single | double | int16 | uint8 | uint16

Número de iteraciones, especificadas como un entero positivo.

Tipos de datos: double

Umbral para amortiguamiento, especificado como un escalar numérico. La amortiguación se produce para los píxeles cuya desviación entre iteraciones es menor que el umbral. tiene el mismo tipo de datos que.damparI

Valor de peso de cada píxel, especificado como una matriz numérica con valores en el intervalo [0, 1]. tiene el mismo tamaño que la imagen de entrada,.weightI De forma predeterminada, todos los elementos tienen el valor, por lo que todos los píxeles se consideran equitativamente en la restauración.weight1

Tipos de datos: double

Ruido, especificado como una matriz escalar o numérica numérica. El valor de corresponde al ruido aditivo (como el ruido del primer plano y el fondo) y la varianza del ruido de la cámara de lectura. tiene el mismo tipo de datos que.readoutreadoutI

Submuestreo, especificado como un escalar positivo.

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen desborrosa, devuelta como una matriz numérica o una matriz de celdas de 1 por 4. (o cuando es una matriz de celdas) tiene el mismo tipo de datos que.JJ{1}JI Para obtener más información acerca de cómo devolver una matriz de celdas para iteraciones interrumpidas, vea.JConsejos

Sugerencias

  • Puede usar para realizar una deconvolución que comienza donde se detuvo una deconvolución anterior.deconvlucy Para utilizar esta función, pase la imagen de entrada y el PSF, como matrices de celdas: y.Ipsf{I}{psf} Cuando lo hace, la función devuelve la imagen de salida como una matriz de celdas, que luego se puede pasar como la matriz de entrada en la siguiente llamada.deconvlucyJdeconvblind La matriz de celdas de salida contiene cuatro elementos:J

    contiene, la imagen original.J{1}I

    contiene el resultado de la última iteración.J{2}

    contiene el resultado de la iteración siguiente a la última.J{3}

    es una matriz generada por el algoritmo iterativo.J{4}

  • La imagen de salida podría exhibir el timbre introducido por la transformada discreta de Fourier utilizada en el algoritmo.J Para reducir el timbre, use antes de llamar.I = edgetaper(I,psf)deconvlucy

  • convierte el PSF a sin normalización.deconvlucydouble

Referencias

[1] D.S.C. Biggs and M. Andrews, Acceleration of iterative image restoration algorithms, Applied Optics, Vol. 36, No. 8, 1997.

[2] R.J. Hanisch, R.L. White, and R.L. Gilliland, Deconvolutions of Hubble Space Telescope Images and Spectra, Deconvolution of Images and Spectra, Ed. P.A. Jansson, 2nd ed., Academic Press, CA, 1997.

Introducido antes de R2006a