Sunteți pe pagina 1din 17

MINISTERUL EDUCAŢIEI al REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI

Departementul Microelectronică şi Dispozitive cu Semiconductori

Îndrumar de Laborator
la disciplina

Imagistica
medicală
şi
prelucrarea
imaginilor
A elaborat st.gr.IBM-201M Balan Olivian
A verificat : dr.conf., Serghei Railean

Chişinău 2021
Lucrarea de laborator N 1
Prelucrarea digitală a imaginilor: tehnici de afişare a imaginii

Scopul lucrării: introducerea unor concepte de bază pentru citirea şi salvarea imaginilor.

Noţiuni teoretice.
Citirea şi scrierea unei imagini
Este indicat să se şteargă spaţiul de lucru MATLAB şi să se închidă toate ferestrele deschise
pentru figuri:
clear, close all
Pentru a citi o imagine se foloseşte comanda imread. Exemplul care urmează citeşte una
din imaginile conţinute în Biblioteca de Imagini pe care utilizatorul a dezvoltat-o (sau una din
imaginile incluse în IPT). Se citeşte imaginea pout.tif şi se memorează temporar într-un tablou
numit I:
I = imread(’pout.tif’);
imread stabileşte că formatul grafic este Tagged Image File Format (TIFF). Pentru lista
care include toate formatele grafice acceptate consultaţi documentaţia de referinţă imread.
În continuare, imaginea citită trebuie să fie afişată. Image Processing Toolbox include două
M-funcţii pentru afişarea unei imagini: imshow şi imtool. imshow este funcţia de bază;
imtool declanşează Image Tool (mediu grafic integrat pentru afişarea imaginilor şi efectuarea
unor operaţii simple de procesare). IT oferă toate posibilităţile de afişare ale imshow dar, în plus,
oferă acces la mai multe unelte care pot fi folosite pentru navigarea în interiorul imaginilor sau
explorarea imaginilor: scroll bars, Pixel Region,
Image Information, Contrast Adjustment.
Pentru afişarea unei imagini se poate folosi oricare din cele
două funcţii amintite mai sus. În acest exemplu vom folosi imshow.
imshow(I).

Memorarea imaginii în spaţiul de lucru MATLAB


Pentru a vedea modul în care funcţia imshow memorează datele
imagine în spaţiul de lucru, se deschide fereastra Workspace în MATLAB. Sunt afişate aici
informaţii despre toate variabilele care au fost create într-o sesiune de lucru MATLAB. Funcţia
imread a returnat datele imagine pentru variabila I, care este un tablou cu 291 x 240 elemente de
tipul uint8. MATLAB poate memora imaginile sub forma unor tablouri
uint8, uint16 sau double.
De asemenea, se pot obţine informaţii despre variabilele din spaţiul de lucru prin comanda
whos.
whos
Name Size Bytes Class
I 291x240 69840 uint8 array
Grand total is 69840 elements using 69840 bytes

Modificarea contrastului
După cum se poate observa, pout.tif este o imagine cu
un contrast redus. Pentru a vedea distribuţia
intensităţii pixelilor în pout.tif se afişează histograma
imaginii prin apelarea funcţiei imhist. Observaţie. Apelarea funcţiei imhist trebuie să fie
precedată de o comandă care să evite afişarea histogramei peste imaginea afişată anterior.
imhist(I)
Gama în care variază intensitatea pixelilor este
destul de îngustă (majoritatea pixelilor au intensităţi între 76
şi 160). Nu este acoperită toată gama accesibilă [0, 255]
şi lipsesc valorile maximă şi minimă care ar conduce la un
contrast bun.
Sunt mai multe posibilităţi de a îmbunătăţi
contrastul unei imagini folosind IPT. O modalitate este
aceea de a egaliza histograma, adică a repartiza valorile
intensităţii peste toată gama posibilă; se realizează prin apelarea funcţiei histeq:
I2=histeq(I);
Apoi, se afişează noua imagine, I2, într-o nouă fereastră:
figure, imshow(I)
Se poate apela din nou imhist pentru a afişa histograma
imaginii I2. Se observă „împrăştierea” valorilor intensităţii peste
toată gama accesibilă de valori.

Scrierea unei imagini într-un fişier


Pentru a salva noua imagine modificată I2 sub forma unui fisier pe disc se foloseşte funcţia
imwrite. Dacă în comandă se include extensia .png, funcţia imwrite va forma un fişier în format
Portable Network Graphics (PNG); se pot specifica şi alte formate.
imwrite (I2, ’pout2.png’);

Obţinerea informaţiilor despre un fişier grafic


Pentru a vedea ceea ce s-a obţinut prin scrierea unui fişier pe disc se foloseşte funcţia
iminfo. Această funcţie returnează informaţia despre imaginea respectivă: formatul ei, mărimea,
dimensiunile etc.
imfinfo(‘pout2.png’)
Ordinea îndeplinirii lucrării de laborator

Pasul 1. Generaţi şi afişati o imagine binară:

BW1 = zeros(20,20);
BW1(2:2:18,2:2:18)=1;
imshow(BW1, 'notruesize');
Pasul 2. Cercetarea tehnicilor speciale de afişaj.
- Adaugaţi la imagine un Colorbar:

I = imread('saturn.tif');
h = [1 2 1; 0 0 0; -1 -2 -1];
I2 = filter2(h,I);
imshow(I2,[]), colorbar

Pasul 3. Cercetarea Afişării Imaginii Multiframe.


- Afişaţi un cadru individual al imaginii Multiframe:
% Initialize an array to hold the 27 frames of mri.tif
mri = uint8(zeros(128,128,1,27));
for frame=1:27
% Read each frame into the appropriate frame in memory
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
imshow(mri(:,:,:,13),map);

- Afişaţi toate cadrele unei imagini Multiframe:

montage(mri,map);
- Convertiţi o imagine Multiframe într-un video:

mov = immovie(mri,map);

colormap(map), movie(mov);
Pasul 4. Afişati o imagine la alegerea D-stră utilizînd imshow (prealabil salvati această
imagine in: C:\MATLAB\toolbox\images\imdemos\tire.tif):

>> I = imread('C:\MATLAB6p1\toolbox\images\imdemos\tire.tif');

min(I(:)) %Find the minimum pixel value of the image.

max(I(:)) %Find the maximum pixel value of the image.

imshow(I,[]);

ans =

ans =

255

Pasul 5.Afisarea Imagini multiple


- Afişaţi fiecăre imagini într-o fereastră separată:

[X1,map1]=imread('C:\MATLAB6p1\toolbox\images\imdemos\saturn.tif');

[X2,map2]=imread('C:\MATLAB6p1\toolbox\images\imdemos\rice.tif');

imshow(X1,map1),figure,imshow(X2,map2);

- Afişaţi imaginile multiple în aceeaşi figură::

subplot(1,2,1), imshow(X1,map2)

subplot(1,2,2), imshow(X2,map2)

Pasul 6. Modificarea contrastului unei imagini uniforme

Pentru modificarea contrastului folosiţi funcţia imadjust.


Această funcţie afişează valorile din intensitatea imaginii I la valori noi în I2 astfel încât
valorile dintre limitele low_in și high_in să fie valori între limitele low_out și high_out. Puteți
utiliza o matrice goală ([]) pentru [low_in high_in] sau pentru [low_out high_out] pentru a
specifica implicit valoarea [0 1]..

Pentru o imagine alb-negru:

I = imread('rice.tif');

I2 = imadjust(I,[0.3 0.9],[0 1]);

imshow(I)

figure, imhist(I)

figure, imshow(I2)

figure, imhist(I2)

Pentru o imagine color:

RGB1 = imread('flowers.tif');

RGB2 = imadjust(RGB1,[.2 .3 0; .6 .7 1],[]);


imshow(RGB1), figure, imshow(RGB2)
apoi histogramele acestora:

I=imread('flowers.tif');

R=imhist(RGB1(:,:,1));

G=imhist(RGB1(:,:,2));

B=imhist(RGB1(:,:,3));

figure, plot(R,'r')

hold on, plot(G,'g')

plot(B,'b'), legend(' Red channel','Green channel','Blue channel');

R=imhist(RGB2(:,:,1));

G=imhist(RGB2(:,:,2));

B=imhist(RGB2(:,:,3));

figure, plot(R,'r')

hold on, plot(G,'g')

plot(B,'b'), legend(' Red channel','Green channel','Blue channel');


Pasul 7. Modificarea contrastului unei imagini alb-negru

Pentru modificarea contrastului folosiţi funcţia histeq

Afişaţi imaginea şi gistograma ei:

I = imread('pout.tif');

Figure

subplot(1,2,1)

imshow(I)

subplot(1,2,2)

imhist(I,64)
Egalaţi histograma şi afişaţi imaginea şi gistograma ei:

J = histeq(I);

figure

subplot(1,2,1)

imshow(J)

subplot(1,2,2)

imhist(J,64)
Pentru o imagine color:

RGB1 = imread('flowers.tif');

RGB2 = histeq(RGB1);

imshow(RGB1), figure, imshow(RGB2)


Afişaţi imaginea şi gistograma ei:

R=imhist(RGB1(:,:,1));

G=imhist(RGB1(:,:,2));

B=imhist(RGB1(:,:,3));

figure, plot(R,'r')

hold on, plot(G,'g')

plot(B,'b'), legend(' Red channel','Green channel','Blue channel');

R=imhist(RGB2(:,:,1));

G=imhist(RGB2(:,:,2));

B=imhist(RGB2(:,:,3));

figure, plot(R,'r')

hold on, plot(G,'g')

plot(B,'b'), legend(' Red channel','Green channel','Blue channel');

Concluzie

Realizând această lucrare de laborator, ne-am familiarizat cu noțiunile de imread și


Ishow. De asemenea am văzut cum are loc afișarea cadrelor imaginilor multiframe și
convertirea acestor imagini în imovie.

S-ar putea să vă placă și