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.

ifanbeam

Transformación inversa del haz de ventilador

Descripción

ejemplo

I = ifanbeam(F,D) reconstruye la imagen a partir de los datos de proyección de haz de ventilador en .IF Cada columna de contiene datos de proyección de haz de ventilador en un ángulo de rotación.F Se supone que el ángulo entre los sensores es uniforme e igual al incremento entre los ángulos de rotación del haz de ventilador. es la distancia desde el vértice del haz del ventilador hasta el centro de rotación.D

ejemplo

I = ifanbeam(F,D,Name,Value) utiliza pares nombre-valor para controlar varios aspectos de la reconstrucción. Los nombres de argumento se pueden abreviar y el caso no importa.

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

Ejemplos

contraer todo

Cree una imagen de ejemplo. La función crea una imagen de cabeza fantasma.phantom

ph = phantom(128);

Cree una transformación de haz de ventilador de la imagen de la cabeza fantasma.

d = 100; F = fanbeam(ph,d);

Reconstituya la imagen del cabezal fantasma de la representación del haz de ventilador. Muestre la imagen original y la imagen reconstituida.

I = ifanbeam(F,d); imshow(ph)

figure imshow(I);

Cree una imagen de ejemplo. La función fantasma crea una imagen de cabeza fantasma.

ph = phantom(128);

Cree una transformación de radón de la imagen.

P = radon(ph);

Convierta la transformación de la proyección de haz paralelo a la proyección de haz de ventilador.

[F,obeta,otheta] = para2fan(P,100,...                              'FanSensorSpacing',0.5,...                             'FanCoverage','minimal',...                             'FanRotationIncrement',1);

Reconstituya la imagen a partir de datos de haz de ventilador.

phReconstructed = ifanbeam(F,100,...                             'FanSensorSpacing',0.5,...                            'Filter','Shepp-Logan',...                            'OutputSize',128,...                             'FanCoverage','minimal',...                            'FanRotationIncrement',1);

Muestre la imagen original y la imagen transformada.

imshow(ph)

figure imshow(phReconstructed)

Argumentos de entrada

contraer todo

Datos de proyección de haz de ventilador, especificados como una matriz numérica por. es el número de sensores de haz de ventilador y es el número de ángulos de rotación del haz de ventilador.numsensorsnumanglesnumsensorsnumangles Cada columna de contiene las muestras del sensor de haz de ventilador en un ángulo de rotación.F

Tipos de datos: double | single

Distancia en píxeles desde el vértice del haz de ventilador hasta el centro de rotación, especificado como un número positivo. supone que el centro de rotación es el punto central de las proyecciones, que se define como .ifanbeamceil(size(F,1)/2) La figura ilustra en relación con el vértice del haz del ventilador para una proyección de haz de ventilador.D

Tipos de datos: double | single

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN

Ejemplo: I = ifanbeam(F,D,'FanRotationIncrement',5)

Rango de rotación de haz de ventilador, especificado como el par separado por comas que consta de y uno de estos valores.'FanCoverage'

  • — Gire a través del rango completo [0, 360) grados.'cycle'

  • — Gire a través del rango mínimo necesario para representar el objeto.'minimal'

Incremento del ángulo de rotación de la viga de ventilador en grados, especificado como el par separado por comas que consta de y un escalar positivo.'FanRotationIncrement'

Tipos de datos: double

Posicionamiento del sensor de haz de ventilador, especificado como el par separado por comas que consta de y uno de los siguientes valores.'FanSensorGeometry'

Valor

Significado

Diagrama

'arc'

Los sensores están espaciados en ángulos iguales a lo largo de un arco circular a distancia del centro de rotación.D

define el espaciado angular en grados.FanSensorSpacing

'line'

Los sensores están espaciados a distancias iguales a lo largo de una línea paralela al eje.x' El sensor más cercano está a una distancia desde el centro de rotación.D

define la distancia entre las vigas de ventilador en el eje, en píxeles.FanSensorSpacingx'

Espaciado del sensor de frijol-ventilador, especificado como el par separado por comas que consta de y un escalar positivo.'FanSensorSpacing'

  • Si es , define el espaciado angular en grados.FanSensorGeometry'arc'FanSensorSpacing

  • Si es , define la distancia lineal entre las vigas de ventilador, en píxeles.FanSensorGeometry'line'FanSensorSpacing El espaciado lineal se mide en el eje.x'

Tipos de datos: double

Filtro que se usará para el filtrado de dominio de frecuencia, especificado como el par separado por comas que consta de y uno de los valores de la tabla.'Filter' Para obtener más información, consulte .iradon

Valor

Descripción

'Ram-Lak'

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

'Shepp-Logan'

Multiplica el filtro Ram-Lak por una funciónsinc

'Cosine'

Multiplica el filtro Ram-Lak por una funcióncosine

'Hamming'

Multiplica el filtro Ram-Lak por una ventana Hamming

'Hann'

Multiplica el filtro Ram-Lak por una ventana Hann

'None'Sin filtrado. devuelve datos sin filtrar.ifanbeam

Tipos de datos: char | string

Factor de escala para reescalar el eje de frecuencia, especificado como el par separado por comas que consta de y un número positivo en el rango (0, 1].'FrequencyScaling' Si 'FrequencyScaling' es menor que 1, entonces el filtro se comprime para caber en el rango de frecuencia, en frecuencias normalizadas; todas las frecuencias anteriores se establecen en .[0,FrequencyScaling]FrequencyScaling0 Para obtener más información, consulte .iradon

Tipos de datos: double

Tipo de interpolación utilizado entre los datos de viga paralela y viga de ventilador, especificado como el par separado por comas que consta de y uno de los siguientes valores.'Interpolation'

— Vecino más cercano'nearest'

— Lineal (predeterminado)'linear'

— Spline cúbico fragmentado'spline'

— Hermita cúbica por piezas (PCHIP)'pchip'

Tipos de datos: char | string

Tamaño de la imagen reconstruida, especificado como el par separado por comas que consta de y un entero positivo.'OutputSize' La imagen tiene el mismo número de filas y columnas.

Si especifica , reconstruye una parte más pequeña o más grande de la imagen, pero no cambia el escalado de los datos.OutputSizeifanbeam

Nota

Si las proyecciones se calcularon con la función, es posible que la imagen reconstruida no tenga el mismo tamaño que la imagen original.fanbeam

Si no especifica , el tamaño se calcula automáticamente por:OutputSize

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

donde está la longitud de los datos de proyección de haz paralelo utilizados por .Riradon Para obtener más información, consulte .Algoritmos

Tipos de datos: double

Argumentos de salida

contraer todo

Imagen reconstruida, especificada como una matriz numérica 2D.

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

Tipos de datos: double

Sugerencias

  • Para realizar una reconstrucción inversa de haz de ventilador, debe proporcionar los mismos parámetros que se utilizaron para calcular los datos de proyección, .ifanbeamF Si utiliza para calcular la proyección, asegúrese de que los parámetros son coherentes al llamar a .fanbeamifanbeam

Algoritmos

convierte los datos del haz de ventilador en proyecciones de haz paralelo y, a continuación, utiliza el algoritmo de proyección posterior filtrada para realizar la transformación de radón inversa.ifanbeam El filtro se diseña directamente en el dominio de frecuencia y luego se multiplica por el FFT de las proyecciones. Las proyecciones se rellenan sin capacidad a una potencia de 2 antes de filtrar para evitar el alias de dominio espacial y acelerar el FFT.

Referencias

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

Consulte también

| | | | |

Introducido antes de R2006a