Trabajo Práctico Final imagenes

download Trabajo Práctico Final imagenes

of 13

description

procesamiento de imagenes . trabajo practico con matlab

Transcript of Trabajo Práctico Final imagenes

Aguirre, Leonel ArmandoAlonso Bascolo, Maria Josefina

Trabajo Prctico Final Bioingeniera, UM 2013

La presente prctica deber ser resuelta por el alumno utilizando programacin en cdigoMatlaby , por otro lado, se utilizar el software de simulacin tomogrficaCTSim. Los scripts programados en Matlabdeben ser incorporadosen el informe. Cada punto resuelto deber acompaarse de su correspondiente imagen y/o resultado numrico, segn corresponda, y una explicacin concisa de lo observado.Ayuda: Matlab posee un set de herramientas (toolbox) exclusivas para la lectura/escritura de imgenes DICOM (entre otras funciones). Algunas de los comandos del toolbox son: dicomread, dicominfo, etc. Estudiar la como usar los comandos en la pgina oficial (http://www.mathworks.com/help/images/ref/dicomread.html, http://www.mathworks.com/help/images/ref/dicominfo.html) o desde el manual de Matlab dentro de la aplicacin.Obtenga los parmetros de adquisicin y reconstruccin de la imagen a partir del encabezado de la imagen DICOM. (tamao de pixel, tamao de matriz, etc)

1) En base a la imagen DICOM provista, correspondiente a un corte tomogrficode CT de cerebro, aplicar correccin gamma, para el parmetrogamma tomando los siguientes valores: 1/2 ;1/3 y 1/4. Mostrar y explicar los resultados.

I = dicomread('CTcerebro');i = uint16(I);A = imadjust(i,[],[],0.5);B = imadjust(i,[],[],1/3);C = imadjust(i,[],[],0.25);subplot(2,2,1), imshow(i,[]);subplot(2,2,2), imshow(A,[]);subplot(2,2,3), imshow(B,[]);subplot(2,2,4), imshow(C,[]);

Gamma = 1/4Gamma = 1/3Gamma = 1/2Imagen OriginalImagen OriginalImagen Original

Los efectos de las correcciones gamma que obtuvimos para las diferentes potencias inferiores a la unidad produjeron que las zonas oscuras sean ms claras dependiendo del gamma usado. Esto se podra apreciar en sus respectivos histogramas donde se vera que los niveles de grises fueron distribuidos. A menor gamma, ms se nos aclararon las zonas oscuras y en consecuencia ms se distribuiran los niveles de grises.

2) Utilizando la imagen original obtenga su histograma:Identifique los 4 picos principales dentro de dicho histograma, segmente el histograma para aislar cada uno de tales picos, muestre laimagen correspondiente a cada segmentode niveles de gris y diga de que estructuras anatmicas estn mayormente representadas (ej: aire, encfalo, hueso esponjoso, hueso compacto, etc)

clcI = dicomread('CTcerebro');[nrows,ncols]=size(I);histogram = zeros([1 5277]);niv2 = zeros([1 5277]);niv2(1) = 1;

for k = 1:1:5276niv2(k+1) = niv2(k)+1;end

fori = 1:1:nrowsfor j = 1:1:ncolsintensidad = I(i,j)+2001;histogram(intensidad) = histogram(intensidad)+1;endend

nivel3 = niv2-2000;plot(nivel3,histogram)figure;

S1 = histogram(1500:2500);A1 = nivel3(1500:2500);xlim([-500 500])P1 = I; % 1 pico!fori = 1:1:nrowsfor j = 1:1:ncolsif (P1(i,j) < (-501))P1(i,j) = -2000;endif (P1(i,j) > (499))P1(i,j) = -2000;endendend

S2 = histogram(2500:3500);A2 = nivel3(2500:3500);xlim([500 1500]);P2 = I; % 2 pico!fori = 1:1:nrowsfor j = 1:1:ncolsif (P2(i,j) < (499))P2(i,j) = -2000;endif (P2(i,j) > (1499))P2(i,j) = -2000;endendend

S3 = histogram(3250:4000);A3 = nivel3(3250:4000);xlim([1250 2000]);P3 = I; % 3 pico!fori = 1:1:nrowsfor j = 1:1:ncolsif (P3(i,j) < (1249))P3(i,j) = -2000;endif (P3(i,j) > (1999))P3(i,j) = -2000;endendend

S4 = histogram(4000:5000);A4 = nivel3(4000:5000);xlim([2000 3000]);P4 = I; % 4 pico!fori = 1:1:nrowsfor j = 1:1:ncolsif (P4(i,j) < (1999))P4(i,j) = -2000;endif (P4(i,j) > (2999))P4(i,j) = -2000;endendend

imview(I,[]);subplot(4,2,1),plot(A1,S1);subplot(4,2,2),imshow(P1,[]);subplot(4,2,3),plot(A2,S2);subplot(4,2,4),imshow(P2,[]);subplot(4,2,5),plot(A3,S3);subplot(4,2,6),imshow(P3,[]);subplot(4,2,7),plot(A4,S4);subplot(4,2,8),imshow(P4,[])

Histograma De La Imagen Original

(Cortical)4 Pico: Hueso Compacto3 Pico: Hueso Esponjoso2 Pico: Encfalo y Piel1 Pico: Tejido Blando

3) Implementar un kernel de convolucin Gaussiano normalizado para filtrado en el dominio espacial, con tamao de mscara de 7x7 y s=2mm. Implementar un filtro equivalente en el dominio de las frecuencias. Demostrar por qu son equivalentes ambos filtros. Comparar sus resultados.I = dicomread ('CTcerebro');subplot(1,2,1),imshow(I,[]); FG = fspecial('gaussian',[7 7],4.08);IF = imfilter(I,FG); subplot(1,2,2),imshow(IF,[]); i = fft2(double(I),512,512);acent = fftshift(i);

subplot(2,2,1),imshow(log(abs(acent)),[1.2 15]); h = fspecial('disk',49);y = h*(1/max(max(h)));Z = padarray(y,[]);fpbajo = imresize(Z,[512 512]);subplot(2,2,2),imshow(fpbajo,[]); aconv = (acent.*fpbajo);subplot(2,2,3),imshow(log(abs(aconv)),[1.2 15]); afilt = real(ifft2(aconv));subplot(2,2,4),imshow(log(abs(afilt)),[1.2 15]);

Imagen Original

Imagen Filtrada

Imagen FiltradaFiltro Imagen Filtrada en el dominio de la FrecuenciaImagen en el dominio de la Frecuencia

Imagen Filtrada en el dominio espacialImagen OriginalImagen Filtrada en el dominio de la frecuenciaImagen filtradaFiltro pasabajo en el dominio de la frecuenciaImagen en el dominio de la frecuenciaTransformada de FourierSea f(t) una funcin localmente integrable cuya integral valor absoluto esta acotada en R. Se define su transformada de Fourier como:

Siendo la anti-transformada o transformada inversa:

Estas expresiones nos permiten calcular la expresin F() (dominio de la frecuencia) apartir de f(t) (dominio del tiempo) y viceversa.La transformada de Fourier Discreta utilizada para este filtro es:

Y su transformada inversa de Fourier utilizada para este filtro:

Segn el teorema de convolucin:Si y denotan la TDF de y , respectivamente, una parte del teorema de la convolucin establece que la convolucin y el producto son un par transformado de Fourier, esto es:

Por lo que basados en este enunciado pordemos decir que nuestros filtros son equivalente ya que el filtro gaussiano utilizado en frecuencia es la trasformada de Fourier del filtro gaussiano utilizado en el dominio espacial, y se utiliz convolucin en el dominio espacial y producto en el dominio de la frecuencia.Finalizando, el filtro gaussiano espacial es:

y su correspondiente transformada de Fourier es:

,donde

4) Utilizando el software CTSim crear el fantomamatemticamente definido de cabeza de Herman (Herman head). Posteriormente generar 2 sinogramas distintos con los siguientes parmetros de barrido:

a) 350 detectores, 180 vistas (proyecciones) por rotacin, equiangular (haz en abanico), 1 muestra por pixel, restantes parmetros por defecto

b) 350 detectores, 180 vistas (proyecciones) por rotacin, parallel (equiespaciado), 1 muestra por pixel, restantes parmetros por defecto

Reconstruir ambos sinogramas con los siguientes parmetros: filteredbackprojection, filtro rampa * limitante de banda (abs(w) * band limit), mtodo de filtrado transformada rpida de Fourier (filtermethod FFT), tamao de imagen resultante (Xsize, Ysize): 512, 512. Restantes parmetros por defecto

a) b)

Exportar ambas imgenes como DICOM. Cargarlas con Matlab. Obtener regiones de inters (ROI) idnticas en ambas imgenes (una submatriz dentro de la imagen) que consideren SOLO reas uniformes (homogneas) de encfalo y otro par idntico entre s sobre una regin del aire que rodea la cabeza. (ver debajo imgenes de ejemplos de ROIsdefinidas en encfalo y en aire).Calcular y comparar el contenido de ruido en cada imagen reconstruida, tanto para encfalo como para aire. Explicar los resultados obtenidos

ROI definida en regin uniforme de encfaloROI definida en regin uniforme del aire

a=dicomread('a.dcm');b=dicomread('b.dcm');imview(a,[])imview(b,[])

aa=a(412:512,412:512); nrowsaa=100;ncolsaa=100;maxaa=0;minaa=65535;fori=1:1:nrowsaafor j=1:1:ncolsaakaa=aa(i,j);if (kaa>maxaa)maxaa=kaa;endif (kaamaxae)maxae=kae;endif (kaemaxba)maxba=kba;endif (kbamaxbe)maxbe=kbe;endif (kbe