You are on page 1of 11

Univerzitet u Tuzli

Fakultet elektrotehnike
Elektrotehnika i sistemi konverzije energije

Seminarski rad
Obrada i analiza medicinskih slika

Student: Tuzla
Nermin Salihbegović December 2018.
Sadržaj
Zadatak Seminarskog rada:..................................................................................................................3
Općenito o detekciji ivica prvog reda...................................................................................................4
Rješenje zadatka u programskom paketu Matlab.................................................................................5
Matlab kod za čitav zadatak...............................................................................................................11
Zadatak Seminarskog rada:

Cilj zadatka je detektovati ivice na slici primjenom detektora zasnovanih na


prvom izvodu. Slike mogu, ali i ne moraju, sadržavati šum. Uporediti dobijene
rezultate za različite slike.
Zatim, ukloniti šum sa nekim od filtera, pa ponoviti detekciju ivica. Analizirati
efekat filtriranja na detekciju ivica.
Seminarski rad mora sadržavati kod, sve rezultujuće slike i jasno objašnjenje
kako su izvedene detekcije ivica i filtriranje (uz opis metoda) i koji su rezultati.
Slike su u nastavku teksta:

slika 1: “canvas.jpg”
slika 2: “gear.jpg”
Općenito o detekciji ivica prvog reda

Ivice su skup piksela koje leže na ivici između dva regiona.


Detekcija ivice u osnovi predstavlja metod segmentacije slike na regione na
osnovu diskontinuiteta. Ona praktično omogućava posmatraču da uoči one
osobine na slici gdje postoje manje ili više izražene promjene u nivou sivila ili
teksturi na slici, indiciraju ć i na taj način kraj jednog regiona i početak drugog
regiona slike. Poboljšavanje (ili naglašavanje) postojanja diskontinuiteta na slici
omogućava poboljšavanje kvaliteta slike pod izvjesnim uslovima.
Detekcija ivica koristi diferencijalne operatore za detekciju promjena u
gradijentima sive ili nivoima boje na slici. Može se podijeliti u dvije glavne
kategorije: detekcija ivica prvog reda i detekcija ivica drugog reda. Kao što i
samo ime sugeriše, detekcija ivica prvog reda je zasnovana na izvodima slike
prvog reda, dok je detekcija ivica drugog reda zasnovana na izvodima slike
drugog reda.
Postoji veliki broj detektora ivica prvog reda. Medutim,najčešće se koriste
Robertovi, Prewittovi i Sobelovi kerneli za filtere detektore ivica. Svaki od
navedenih filtera dobijen je kombinacijom dva kernela: jedan za izvod po x i
jedan za izvod po y. Na slici 3. su dati kerneli detektora ivica prvog reda.

Slika.3 Detektori ivica prvog reda


Rješenje zadatka u programskom paketu Matlab

Matlab kod za prvi dio zadatka:


(Učitavanje orginalne prve slike, te detekcija ivica na njoj uz pomoć tri detektora, zatim prikaz)
I=imread('canvas.jpg'); %Ucitava sliku
IEr=edge(I, 'roberts'); %Robertsov detektor
IEp=edge(I,'prewitt'); %Prewittov detektor
IEs=edge(I,'sobel'); %Sobelov detektor
subplot(2,2,1), imshow(I); %Prikaz prve originalne slike
subplot(2,2,2), imshow(IEr); %Prikaz prve slike sa Roberts-ovim detektorom ivica
subplot(2,2,3), imshow(IEp);%Prikaz prve slike sa Prewitt-ovim detektorom ivica
subplot(2,2,4), imshow(IEs);%Prikaz prve slike sa Sobel-ovim detektorom ivica

Slika 4.Detektovanje ivica uz pomoć Robers-ovog,Prewitt-ovog i Sobel-ovog


detektora
Na slikama možemo da uočimo razlike između različitih detektora ivica, tj.
osnovna razlika je u gustini linija koje ocrtavaju ivice, tj u njihovoj
neisprekidanosti. U nastavku je isti dio zadatka, samo na slici 2.

slika 7. Detektovanje ivica uz pomoć Robers-ovog,Prewitt-ovog i Soobel-ovog detektora


U drugom dijelu zadatka je rečeno da se sa slika ukloni šum uz pomoć nekog
od filtera, ukoliko ga ima, te se primjene detektori zasnovani na prvom izvodu,
za određivanje ivica.

Uklanjanje šuma, iz razloga što je naglašeno da može bilo koji filter, ćemo
uraditi uz pomoć “mean filtera”.
Mean filter je vjerovatno najjednostavniji linearni filter koji daje jednake težine
svim pikselima unutar kernela (unutar susjedstva posmatranog piksela). Za ci-
jelo susjedstvo veličine NxM korištena je težina 1/(N*M), tako da se svaki
piksel u izlaznoj slici zamjenjuje sa srednjom vrijednosti piksela iz njegovog
susjedstva, pa tako ima efekat zaglađivanja slike. Ovakva težinska shema
osigurava da će suma svih težina unutar kernela biti jednaka 1 za bilo koju
veličinu susjedstva.
Ovaj filter se koristi kao metoda za potiskivanje šuma, mada se često
koristi kao preliminarni korak u obradi slike kako bi se slika zagladila, te na taj
način se dobio bolji rezultat sa narednim operacijama obrade slike. Nedostatak
je da nije robustan na velike devijacije šuma na slici.
Primjećujemo da je šum prisutan na slici 2., ali ćemo primjeniti mean filter na
obje slike da vidimo kakav je rezultat.
I=imread('canvas.jpg'); %Ucitava sliku
k=ones(3,3)/9; %Definiše mean filter
Im=imfilter(I,k); %primjenjuje mean filter na orginalnu sliku
imshow(Im); %Prikaz slike sa filterom šuma

slika 8. Orginalna slika 1. (lijevo) i slika 1. sa “mean” filterom (desno)


Primjena “mean” filtera na sliku 2.

slika 9. Orginalna slika 2. (lijevo) i slika 2. sa “mean” filterom (desno)

Ono što primjećujemo, u oba slučaja, jeste da su sada prelazi između dvije
različite boje mnogo blaži. Bez naglih ivica, što je posljedica filtera
primjenjenog na slike. To ćemo da prikažemo u nastavku.

Iz navedenog, možemo da primjetimo da su kod slike na koji je primjenjen


filter “mean”, ili filter za uklanjanje šuma, ivice manje izražene, tj prelazak
između dvije različite podloge je “glađi”.
Usporedit ćemo dvije iste slike, samo što je na jednoj primjenjen filter a na
jednoj ne.
Slika 10. Detekcija ivica na sliku 2. nakon primjene mean filtera
Prikazat ćemo razlike između detekcije ivica na orginalnoj slici ( slici na kojoj
nije primjenjen mean filter) i slike sa mean filterom

slika 11. Razlika između detekcije ivica na orginalnoj slici i slici sa filterom
Matlab kod za čitav zadatak

I=imread('canvas.jpg'); %Ucitava sliku


I2=imread('gear.jpg'); %Ucitava drugu sliku
IEr=edge(I, 'roberts'); %Robertsov detektor
IEp=edge(I,'prewitt'); %Prewittov detektor
IEs=edge(I,'sobel'); %Sobelov detektor
%imshow(I); %Prikaz prve originalne slike
%imshow(IEr); %Prikaz prve slike sa Roberts-ovim detektorom ivica
%imshow(IEp);%Prikaz prve slike sa Prewitt-ovim detektorom ivica
%imshow(IEs);%Prikaz prve slike sa Sobel-ovim detektorom ivica
k=ones(3,3)/9; %Definiše mean filter
I2Er=edge(I2, 'roberts'); %Robertsov detektor
I2Ep=edge(I2,'prewitt'); %Prewittov detektor
I2Es=edge(I2,'sobel'); %Sobelov detektor
%imshow(I2); %Prikaz druge originalne slike
%imshow(I2Er);%Robertsov detektor
%imshow(I2Ep); %Prewittov detektor
%imshow(I2Es); %Sobelov detektor
I2m=imfilter(I2,k); %primjena filtera ga na drugu orginalnu sliku
I2Erm=edge(I2m, 'roberts'); %Robertsov detektor
I2Epm=edge(I2m,'prewitt'); %Prewittov detektor
I2Esm=edge(I2m,'sobel'); %Sobelov detektor
%imshow(I2m); %Prikaz drug slike sa filterom
%imshow(I2Erm);%Robertsov detektor
%imshow(I2Epm); %Prewittov detektor
imshow(I2Esm); %Sobelov detektor

You might also like