You are on page 1of 13

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

PROGRAMA DE MAESTRÍA Y DOCTORADO EN INGENIERÍA


MAESTRÍA EN INGENIERÍA ELÉCTRICA – PROCESAMIENTO DIGITAL DE SEÑALES

TAREA NO. 1

ALGORITMO DE RETROPROYECCION FILTRADA.

INTRODUCCIÓN A IMÁGENES MÉDICAS

PRESENTA:

ÁLVAREZ HERNÁNDEZ LAURA PAMELA

PROFESOR DE ASIGNATURA

DR. EDGAR GARDUÑO ANGELES


PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

CONTENIDO
INTRODUCCIÓN ................................................................................................................................................... - 1 -
1.1 OBJETIVOS Y ALCANCE......................................................................................................................... - 1 -
MARCO TEÓRICO ................................................................................................................................................. - 2 -
1.1 FILTROS PARA RETROPROYECCION FILTRADA ..................................................................................... - 2 -
1.1.1 DISEÑO DE FILTROS FIR ........................................................................................................................ - 2 -
DESARROLLO........................................................................................................................................................ - 3 -
RESULTADOS........................................................................................................................................................ - 4 -
CONCLUSIONES ................................................................................................................................................... - 6 -
BIBLIOGRAFÍA ...................................................................................................................................................... - 6 -

ÁPENDICE

APENDICE A.- CODIGOS DE MATLAB .........................................................................................................................I


A.1 Function FPB1 (FILTERED BACKPROJECTION) ................................................................................................II
A.2 DEMO.m ........................................................................................................................................................ V

LISTA DE FIGURAS

Figura 1. Características temporales y frecuencias de las ventanas m as empleadas ........................................ - 2 -


Figura 2. Gráficas de los Filtros para retroproyeccion ........................................................................................ - 3 -
Figura 3.Phantom Generado de 1500x1500........................................................................................................ - 4 -
Figura 4. Sinograma obtenido con matlab. ......................................................................................................... - 5 -
Figura 5. Phantom retroproyectado .................................................................................................................... - 5 -
Figura 6. Comparación entre imagen de entrada y Retroproyectada................................................................. - 6 -

i
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

INTRODUCCIÓN

Las tomografías son comúnmente utilizadas en aplicaciones médicas, éstas rtequieren la mejor visualización
para un órgano en específico, ahora bien, la retroproyeccion de una imagen de una sección transversal de algún
objeto es escencialment lo que se conoce como tomografía bidimensional. Por lo que ésta puede ser
considerada como el conjunto de proyecciones sobre las resctas que forman el plano de una placa tomográfica.
Por lño tanto, si en un algoritmo se incorpotan los datos obtenidos en una tomografía con los modelos de
restauración de imágenes, se obtiene una aproximación casi exacta de la morfología del órgano estudiado. Por
tal motivo, existen diversos modelos de reconstrucción de imágenes, entre ellos destaca el método de
retroproyección filtrada el cual se planteó inicialmente como un algoritmo de inversión de la transformada de
Radon; este hace uso de herramientas matemáticas propias del análisis de Fourier como lo son el teorema de
proyecciones y el producto convolución además de una elaborada construcción geométrica que permitirá
reconstruir la imagen a partir de un conjunto de rectas.

En 1917 el matemático austriaco Johann Radon probó en un artículo que es posible reconstruir un objeto
bidimensional o tridimensional a partir de un conjunto de infinitas proyecciones, dicha reconstrucción se realiza
mediante la hoy conocida transformada de Radon.

El procedimiento práctico (discreto) consiste en dividir el objeto en secciones y resolver el problema sección por
sección para después integrar a todo el cuerpo. Posteriormente se sobrepone una cuadricula imaginaria a cada
sección planar quedando así hipotéticamente dividido en celdas, a cada celda le corresponde una masa de
densidad promedio las cuales constituirán las incógnitas de nuestro problema a estudiar. Las proyecciones se
convierten entonces en sumas de muchos términos sobre direcciones en la cuadricula. En consecuencia, cada
término (de la sumatoria que forma una proyección) es el producto de un factor de peso multiplicado por la
densidad del cuadro que es la incógnita.

1.1 OBJETIVOS Y ALCANCE

 Programar algoritmo de retro-proyección filltrada para reconstruir una distribución de densidades, usando
la geometría en paralelo.

-1-
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

MARCO TEÓRICO

1.1 FILTROS PARA RETROPROYECCION FILTRADA


El término filtro es utilizado para describir un sistema el cual discrimina algunas características de las señales de
entrada, tiene la capacidad de modificar ciertos rasgos de entrada y suprimir otras. Típicamente un filtro
describe a un sistema lineal e invariante en el tiempo el cual es utilizado para seleccionar un intervalo de
frecuencias. Algunas de las funciones de los filtros son:

 Separar señales que han sido combinadas o mezcladas.


 Restaurar señales que han sido distorsionadas.
 Extraer información de señales con rasgos conocidos.
 Remover o eliminar ruido indeseable.

1.1.1 DISEÑO DE FILTROS FIR

Las principales ventanas para retroproyeccion filtrada son:

 Rectangular
 Barlett (tiangular
 Hanning
 Hamming
 Blackman
 Kaiser

Figura 1. Características temporales y frecuencias de las ventanas m as empleadas

-2-
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

Figura 2. Gráficas de los Filtros para retroproyeccion

DESARROLLO

1. Con ayuda del programa ubicado en la página:


http://turing.iimas.unam.mx/~egarduno/Course/IMI/homeworks.htm se hará el uso del programa de
Matlab que se encuentra en la Sección “CÓDIGOS” para generar el Phantom.
2. A dicho Phantom, se le aplicará la transformada de Radon para obtener su “Sinograma”.
3. Una vez obtenida la matriz de Radon “R” y el vector de coordenadas radiales para cada “Xp”, se generará el
algoritmo de Retroproyeccion Filtrada para obtener un modelo semejante al phantom generado en el punto
uno.

-3-
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

RESULTADOS
Con ayuda del código mencionado en el punto uno, se obtuvo el siguiente “phantom” . De 1500 puntos por
1500 puntos.

Figura 3.Phantom Generado de 1500x1500

A dicho phantom, se le aplico la tranformada de Radon con ayuda de la herramienta que Matlab ofrece:

>> [R,Xp] = radon(I,theta);

Con la cual se obtuvó la transformada de radón “R” y el vector de Coordenadas radiales para cada R. Generando
el sinograma mostrado en la Figura 4. Sinograma obtenido con matlab..

Para obtener retroproyeccion filtrada del “Sinograma” mostrado en la figura 4, se aplico lo siguiene:

1. Se aplicará la FFT de la matriz de Radón al igual que al filtro que se utilizará.


2. Se multiplicará al filtro y a la matriz R en el dominio de la frecuencia.
3. Se aplicará la transformada inversa de Fourier.
4. Se aplicará el algoritmo de retroproyección definido como:

-4-
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

𝐾
𝜋
𝑓(𝑥, 𝑦) = ∑ 𝑄𝜃𝑖 (𝑥𝑐𝑜𝑠𝜃𝑖 + 𝑦𝑠𝑖𝑛𝜃𝑖 )
𝐾
𝑖=1

Con lo que se obtuvo la Figura 5. Phantom retroproyectado

Figura 4. Sinograma obtenido con matlab.

Figura 5. Phantom retroproyectado

-5-
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

Figura 6. Comparación entre imagen de entrada y Retroproyectada

CONCLUSIONES
El proceso empleado en este trabajo, resulta genérico, ya que si se desea introducir cualquier sinoigrama y el
algoritmo arrojhará la reconstrucción de la imagen de tomografía deeseada, simopre y cuando se conozca el
numero de renglones y columnas apropiados para dicha retroproyección.

La reconstrucción obtenida con este método es considerablemente buena, a pesar de la ligera presencia de
ruido en la imagen reconstruida, si se analizan aspectos de forma y contraste en la imagen estudiada. Por tanto,
es natural pensar que la búsqueda de nuevos algoritmos de reconstrucción o de herramientas que mejoren el
método de retroproyección filtrada está aún lejos de su fin.

BIBLIOGRAFÍA

[1] L. Tan, Digital Signal Processing Principles, Fundamentals and Aplications, Elsevier, 2008.

[2] K. H. Russell, Intermediate Physics for Medicine and Biology, Minnesota: Unyversity of Minnesota, 1980.

[3] S. Deans, The Radon transform and some of its applications, New York: Dover Publications, Inc., 1983.

-6-
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

APENDICE A.- CODIGOS DE MATLAB

I
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

A.1 FUNCTION FPB1 (FILTERED BACKPROJECTION)


function [ImgR]=FBP1(R, Xp, angulo, Rowsimg, Colsimg, typeF)
%R (Matriz R), Xp (Coordenadas radiales para cada R) datos de la transformada
de Radon
% ang angulo usado en la T Radon
% Rowsimg, Colsimg son el tamaño del phantom deseado
% el ángulo debe ser el total deseado, el algoritmo clacula el limite
% superior.
% typeF Corresponde al numero del filto que se desea aplicar (la numeracion
% va del 1 al 5)Donde: 1. Es sin Filtro, 2. Es un filtro Rampa 3.Hamming
% 4. Hanning y 5. %Blackman

%De la matriz R se obtiene M= numero de angulos medidos y N= Detectores


%para cada angulo.
[N,M]=size(R);
theta=[0:(angulo-1)];
Xp_offset=abs(min (Xp))+1;
W=2^nextpow2(N);
Imgtm=zeros(Rowsimg,Colsimg);

%Filto en el dominio de la frecuencia

FilterType=typeF;
FRaml=2*[0:(W/2-1),W/2:-1:1]'/W;
switch FilterType
case 1 %Sin filtro
filter=ones(W,1);
case 2 % Filtro Ramp Filter
filter=FRaml;
case 3 %Hamming
Hamming=0.54-0.46*cos(2*pi*(0:W-1)/W);
Tmp=[Hamming(W/2:W) Hamming(1:W/2-1)];
filter=FRaml.*Tmp';
case 4 %Hanning
Hanning=0.5-0.5*cos(2*pi*(0:W-1)/W);
Tmp=[Hanning(W/2:W) Hanning(1:W/2-1)];
filter=FRaml.*Tmp';
case 5 %Blackman
Blackman=0.42-0.5*cos(2*pi*(0:W-1)/W)+0.08*cos(4*pi*(0:W-1)/W);
Tmp=[Blackman(W/2:W) Blackman(1:W/2-1)];
filter=FRaml.*Tmp';

II
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

otherwise
disp('Elija valores entre 1 al 5')
end

figure(2);
plot(filter);
title('Gráfica del Filtro seleccionado');

Proyfft=fft(R,W);

%Realizando el Filtrado

for i=1:M
Filtrado(:,i)=Proyfft(:,i).*filter;
end

%Aplicando la IFFT

proy=real(ifft(Filtrado));

proy=proy(1:N,1:M);
%Aplicando la Retroproyeccion

for i=1:M
Q=proy(:,i);
rad=theta(i)*pi/180;
for x=1:Colsimg
for y=1:Rowsimg
%Posicion del Detector
PD=(x-(Colsimg/2))*cos(rad)-(y-(Rowsimg)/2)*sin(rad)+Xp_offset;
if ceil(PD)==floor(PD)
q1=Q(ceil(PD));
q2=0;
else
q1=Q(ceil(PD))*(PD-floor(PD));
q2=Q(floor(PD))*(ceil(PD)-(PD));
end
Imgtm(y,x)=Imgtm(y,x)+q1+q2;
end
end

III
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

end

ImgR=(pi/M).*Imgtm;

IV
PROCESAMIENTO DIGITAL DE SEÑALES
TAREA NO. 1 ALGORITMO DE RETROPROYECCION FILTRADA

A.2 DEMO.M
I=generaPhantom(1500,1500);
close all
figure(1)
subplot(1,2,1); imagesc(I);colormap(gray);axis square
title('Original Phantom');
subplot(1,2,2); imagesc(R);colormap(gray)
title('Sinograma')

%aplicando la transformada de Radon al phantom


theta=0:179;
[R,Xp] = radon(I,theta);
[Rowsimg,Colsimg]=size(I);
angulo=180;
typeF=5;
ImgR=FBP1(R, Xp, 180, Rowsimg, Colsimg,typeF);
figure(3)
subplot(1,2,1); imagesc(I);colormap(gray);axis square
title('Phantom Original');
subplot(1,2,2); imagesc(ImgR);colormap(gray);axis square
title('Imagen reconstruida');

You might also like