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

Desenfocar imagen usando el método Lucy-Richardson

Sintaxis

J = deconvlucy(I,psf)
J = deconvlucy(I,psf,iter)
J = deconvlucy(I,psf,iter,dampar)
J = deconvlucy(I,psf,iter,dampar,weight)
J = deconvlucy(I,psf,iter,dampar,weight,readout)
J = deconvlucy(I,psf,iter,dampar,weight,readout,subsample)

Descripción

ejemplo

J = deconvlucy(I,psf) restablece la I de la imagen que fue degradada por circunvolución con una función de dispersión puntual (PSF), psf, y posiblemente por ruido aditivo. El algoritmo se basa en maximizar la probabilidad de que la imagen resultante J sea una instancia de la imagen original I bajo las estadísticas de Poisson.

Para mejorar la restauración, deconvlucy soporta varios parámetros opcionales, descritos a continuación. Utilice [] como marcador de puesto si no 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 mediante la supresión de iteraciones para píxeles que se desvían de 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 I se consideran en la restauración. El valor de un elemento de la matriz weight determina cuánto se considera el píxel en la posición correspondiente de la imagen de entrada. Por ejemplo, para excluir un píxel de la consideración, asigne un valor de 0 en la matriz weight . 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 (por ejemplo, Fondo, ruido de primer plano) y la variación 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 cuadrícula que es subsample veces más fina que la imagen.

Ejemplos

contraer todo

Crear una imagen de ejemplo y desenfocarla.

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

Cree un array de peso y llame a deconvlucy usando 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 iteraciones interrumpidas. Para obtener más información, consulte Consejos.

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

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

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

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

Tipos de datos: double

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

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

Tipos de datos: double

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

Submuestreo, especificado como escalar positivo.

Tipos de datos: double

Argumentos de salida

contraer todo

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

Sugerencias

  • Puede utilizar deconvlucy para realizar una decircunvolución que comienza donde se detuvo una decircunvolución anterior. Para utilizar esta función, pase la imagen de entrada I y el PSF, psf, como arrays de celdas: {I} y {psf}. Cuando lo hace, la función deconvlucy devuelve la imagen de salida J como una matriz de celdas, que luego se puede pasar como la matriz de entrada a la siguiente llamada deconvblind . El array de celdas de salida J contiene cuatro elementos:

    J{1} contiene I, la imagen original.

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

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

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

  • La imagen de la salida J podía exhibir sonar introducido por el Fourier discreto transforma utilizado en el algoritmo. Para reducir el timbrado, use I = edgetaper(I,psf) antes de llamar a deconvlucy.

  • deconvlucy convierte el PSF a double sin normalización.

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