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.

fanbeam

Transformación de haz de ventilador

Descripción

ejemplo

F = fanbeam(I,D) calcula los datos de proyección del haz de ventilador (sinograma) a partir de la imagen.FI Cada columna de contiene datos de proyección de haz de ventilador en un ángulo de rotación. es la distancia desde el vértice del haz del ventilador hasta el centro de rotación.FD

F = fanbeam(I,D,Name,Value) utiliza pares nombre-valor para especificar el incremento de rotación y el espaciado del sensor. Los nombres de argumento se pueden abreviar y el caso no importa.

ejemplo

[F,fan_sensor_positions,fan_rotation_angles] = fanbeam(___) devuelve la ubicación de los sensores de haz de ventilador y los ángulos de rotación en los que se calculan las proyecciones de haz de ventilador en .fan_sensor_positionsfan_rotation_angles

Ejemplos

contraer todo

Establezca la preferencia IPT para hacer visibles los ejes.

iptsetpref('ImshowAxesVisible','on')

Cree una imagen de ejemplo y muésela.

ph = phantom(128); imshow(ph)

Calcule las proyecciones del haz de ventilador y muéselas.

[F,Fpos,Fangles] = fanbeam(ph,250); figure imshow(F,[],'XData',Fangles,'YData',Fpos,...             'InitialMagnification','fit') axis normal xlabel('Rotation Angles (degrees)') ylabel('Sensor Positions (degrees)') colormap(gca,hot), colorbar

Calcular proyecciones de haz de ventilador para geometría de arco.

I = ones(100); D = 200; dtheta = 45; [Farc,FposArcDeg,Fangles] = fanbeam(I,D,...                     'FanSensorGeometry','arc',...                  'FanRotationIncrement',dtheta);

Convierta las posiciones angulares a distancia lineal a lo largo del eje x-prime.

FposArc = D*tan(FposArcDeg*pi/180);

Calcular proyecciones de haz de ventilador para geometría de línea.

[Fline,FposLine] = fanbeam(I,D,...            'FanSensorGeometry','line',...         'FanRotationIncrement',dtheta);

Calcula la transformación de radón correspondiente.

[R,Rpos]=radon(I,Fangles);

Visualice las tres proyecciones en un ángulo de rotación determinado. Tenga en cuenta que los tres son muy similares. Las diferencias se deben a la geometría del muestreo y a las aproximaciones numéricas utilizadas en los cálculos.

figure idx = find(Fangles==45); plot(Rpos,R(:,idx),...            FposArc,Farc(:,idx),...           FposLine,Fline(:,idx)) legend('Radon','Arc','Line')

Argumentos de entrada

contraer todo

Imagen de entrada, especificada como una matriz numérica o lógica 2D.

Distancia en píxeles desde el vértice del haz del ventilador hasta el centro de rotación, especificado como un número positivo. El centro de rotación es el píxel central de la imagen, definido como . debe ser lo suficientemente grande como para asegurarse de que el vértice del haz del ventilador está fuera de la imagen en todos los ángulos de rotación.floor((size(I)+1)/2)D Consulte las directrices sobre cómo especificar .ConsejosD La figura ilustra en relación con el vértice de la viga del ventilador para una geometría de viga de ventilador.D

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: F = fanbeam(I,D,'FanRotationIncrement',5)

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

Argumentos de salida

contraer todo

Datos de proyección de haz de ventilador, devueltos como una matriz numérica. 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

Ubicación de los sensores de haz de ventilador, devueltos como un vector numérico -by-1.numsensors

  • Si es (el valor predeterminado), contiene los ángulos de extensión del haz de ventilador.FanSensorGeometry'arc'fan_sensor_positions

  • Si es , entonces contiene las posiciones del sensor del haz de ventilador a lo largo del eje.FanSensorGeometry'line'fan_sensor_positionsx' Consulte para obtener más información.FanSensorSpacing

determina el número de sensores calculando cuántos haces se requieren para cubrir toda la imagen para cualquier ángulo de rotación.fanbeam Se requieren menos sensores para cubrir la imagen cuando la distancia entre el vértice del haz de ventilador y el centro de rotación es grande.D

Tipos de datos: double

El ángulo de rotación de los sensores de haz de ventilador, devuelto como un vector 1 por numérico. Esnumanglesnumangles 360/FanRotationIncrement.

Tipos de datos: double

Sugerencias

Como guía, intente hacer que unos pocos píxeles sean mayores que la mitad de la dimensión diagonal de la imagen, calculada de la siguiente manera.D

sqrt(size(I,1)^2 + size(I,2)^2)

Los valores devueltos son una aproximación numérica de las proyecciones de haz de ventilador.F El algoritmo depende de la transformación Radon, interpolada a la geometría del haz de ventilador. Los resultados varían en función de los parámetros utilizados. Puede esperar resultados más precisos cuando la imagen es más grande, es más grande y para puntos más cercanos al centro de la imagen, lejos de los bordes.D

Referencias

[1] Kak, A.C., & Slaney, M., Principles of Computerized Tomographic Imaging, IEEE Press, NY, 1988, pp. 92-93.

Consulte también

| | | | |

Introducido antes de R2006a