Main Content

iradon

Transformada de Radon inversa

Descripción

ejemplo

I = iradon(R,theta) reconstruye la imagen I a partir de datos de proyección en R capturados en ángulos de proyección theta.

I = iradon(R,theta,interp,filter,frequency_scaling,output_size) especifica los parámetros a utilizar en la transformación de Radon inversa. Puede especificar cualquier combinación de los cuatro últimos argumentos. iradon utiliza valores por defecto para los argumentos que usted omite.

[I,H] = iradon(___) también devuelve la respuesta en frecuencia del filtro, H.

Ejemplos

contraer todo

Cree una imagen de fantasma. Muestre la imagen.

P = phantom(128); 
imshow(P)
title('Original image')

Figure contains an axes object. The axes object with title Original image contains an object of type image.

Realice una transformada de Radon de la imagen.

R = radon(P,0:179);

Realice una retroproyección filtrada.

I1 = iradon(R,0:179);

Realice una retroproyección no filtrada.

I2 = iradon(R,0:179,'linear','none');

Muestre las imágenes reconstruidas.

figure
subplot(1,2,1)
imshow(I1,[])
title('Filtered Backprojection')
subplot(1,2,2)
imshow(I2,[])
title('Unfiltered Backprojection')

Figure contains 2 axes objects. Axes object 1 with title Filtered Backprojection contains an object of type image. Axes object 2 with title Unfiltered Backprojection contains an object of type image.

Cree una imagen de fantasma.

P = phantom(128);

Realice una transformada de Radon de la imagen y obtenga el vector de proyección correspondiente a una proyección en un ángulo de 45 grados.

R = radon(P,0:179);
r45 = R(:,46);

Realice la transformada de Radon inversa de este único vector de proyección. La sintaxis iradon no permite hacer esto directamente, porque si theta es un escalar se trata como un incremento. Puede realizar la tarea pasando dos copias del vector de proyección y luego dividiendo el resultado por 2.

I = iradon([r45 r45], [45 45])/2;

Muestre el resultado.

imshow(I, [])
title('Backprojection from 45 degrees')

Figure contains an axes object. The axes object with title Backprojection from 45 degrees contains an object of type image.

Argumentos de entrada

contraer todo

Datos de proyección de haces paralelos, especificado como uno de los siguientes:

  • Si theta es un escalar, R es un vector columna numérico que contiene la transformada de Radon para theta grados.

  • Si theta es un vector, R es una matriz en la que cada columna es la transformada de Radon para uno de los ángulos de theta.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Ángulos de proyección (en grados), especificados como uno de los siguientes:

ValorDescripción
Vector numéricoÁngulos de proyección. Debe haber un espacio igual entre los ángulos.
Escalar numéricoÁngulo incremental entre proyecciones. Las proyecciones se toman en ángulos m*theta, donde m = 0,1,2,...,size(R,2)-1.
[]Establecer automáticamente el ángulo incremental entre las proyecciones a 180/size(R,2)

Tipos de datos: double

Tipo de interpolación que utilizar en la retroproyección, especificado como uno de estos valores: Los valores aparecen en orden de precisión y complejidad computacional crecientes.

Valor

Descripción

"nearest"

Interpolación del vecino más cercano

"linear"

Interpolación lineal

"spline"

Interpolación por splines

"pchip"Interpolación cúbica a trozos que conserva la forma
"v5cubic"Convolución cúbica usada en MATLAB® 5.

Tipos de datos: char | string

Filtro utilizado para el filtrado de dominio de la frecuencia, especificado como uno de estos valores:

Valor

Descripción

"Ram-Lak"

Filtro Ram-Lak o de rampa recortado. La respuesta en frecuencia de este filtro es | f |. Dado que este filtro es sensible al ruido en las proyecciones, podría ser preferible uno de los filtros que se indican a continuación. Estos filtros multiplican el filtro Ram-Lak por una ventana que desacentúa las frecuencias altas.

"Shepp-Logan"

Multiplica el filtro Ram-Lak por una función sinc

"Cosine"

Multiplica el filtro Ram-Lak por una función cosine

"Hamming"

Multiplica el filtro Ram-Lak por una ventana Hamming

"Hann"

Multiplica el filtro Ram-Lak por una ventana Hann

"None"Sin filtro. iradon devuelve los datos de retroproyección sin filtrar.

Tipos de datos: char | string

Factor escalar para reescalar el eje de frecuencia, especificado como número positivo en el intervalo [0, 1]. Si frequency_scaling es menor que 1, el filtro se comprime para ajustarse al intervalo de frecuencias [0,frequency_scaling], en frecuencias normalizadas; todas las frecuencias por encima de frequency_scaling se establecen en 0.

Número de filas y columnas en la imagen reconstruida, especificado como entero positivo. Si no se especifica output_size, el tamaño se determina a partir de la longitud de las proyecciones de acuerdo con:

output_size = 2*floor(size(R,1)/(2*sqrt(2)))

Si especifica output_size, iradon reconstruye una parte más pequeña o más grande de la imagen pero no cambia la escala de los datos. Si las proyecciones se calcularon con la función radon, la imagen reconstruida podría no tener el mismo tamaño que la imagen original.

Argumentos de salida

contraer todo

Imagen en escala de grises, devuelta como una matriz numérica. Si los datos de proyección de entrada R son del tipo de datos single, I es single; en caso contrario I es double.

Tipos de datos: single | double

Respuesta en frecuencia del filtro, devuelta como un vector numérico.

Tipos de datos: double

Algoritmos

iradon asume que el centro de rotación es el punto central de las proyecciones, que se define como ceil(size(R,1)/2).

iradon utiliza el algoritmo de retroproyección filtrada para realizar la transformada de Radon inversa. El filtro se diseña directamente en el dominio de la frecuencia y luego se multiplica por la FFT de las proyecciones. Las proyecciones se rellenan de ceros a una potencia de 2 antes del filtrado para evitar el aliasing en el dominio espacial y acelerar la FFT.

Referencias

[1] Kak, A. C., and M. Slaney, Principles of Computerized Tomographic Imaging, New York, NY, IEEE Press, 1988.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo

Consulte también

| | | | |