- 1. Obrada slike pomoću prozora MATLAB Editor
- 2. Obrada slike s MATLAB GUI
- Izrada grafičkog korisničkog sučelja MATLAB za obradu slika
- MATLAB GUI kod za obradu slika
- Pokrenite MATLAB GUI kod za obradu slika
Zamislite da svoju kameru usmerite na neki objekt i kamera vam kaže ime tog predmeta, da, Google Lens na pametnim telefonima s Androidom čini istu stvar koristeći Obradu slike. To daje računalu viziju da prepozna i prepozna stvari i u skladu s tim poduzme mjere. Obrada slika ima puno aplikacija poput prepoznavanja i prepoznavanja lica, otiska palca, proširene stvarnosti, OCR-a, skeniranja crtičnog koda i mnogih drugih. Za obradu slika dostupno je mnogo softvera, među kojima je MATLAB najprikladniji za početak.
MATLAB može izvoditi mnogo operacija obrade slika unaprijed, ali za početak rada s obradom slika u MATLAB-u, ovdje ćemo objasniti neke osnovne operacije poput RGB-a u sivo, rotiranje slike, binarnu pretvorbu itd. Možete dalje izrađivati automatizirane programe za uklanjanje šuma, sliku jasnoća, filtriranje pomoću funkcija objašnjenih u ovom vodiču.
Prije nego što nastavite dalje, ako ste novi u MATLAB-u, možete provjeriti naše prethodne MATLAB-ove vodiče za bolje podcjenjivanje:
- Početak rada s MATLAB-om: kratki uvod
- Povezivanje Arduina s MATLAB-om - Trepćuća LED
- Upravljanje istosmjernim motorom pomoću MATLAB-a i Arduina
- Upravljanje koračnim motorom pomoću MATLAB-a i Arduina
- Kako ucrtati grafikon temperature u stvarnom vremenu pomoću MATLAB-a
U MATLAB-u, kao i uvijek, postoje dva načina za izvođenje bilo kojeg algoritma za obradu slike, jedan je izravnim unosom naredbe u prozor uređivača / naredbi, a drugi stvaranjem GUI-ja za isti. Ovdje ćemo vam pokazati obje metode za obavljanje osnovnih operacija obrade slika u MATLAB-u.
1. Obrada slike pomoću prozora MATLAB Editor
Sada ćemo napisati kod za izvođenje nekih osnovnih operacija obrade slika u prozoru uređivača. Da biste se upoznali sa svom osnovnom terminologijom koja se koristi u MATLAB-u, slijedite vezu. Kopirajte i zalijepite donji kod u prozor uređivača, a = nepročitano ('F: \ sažetak kruga \ obrada slike pomoću matlab \ camerman.jpg'); podzaplet (2,3,1); imshow (a); b = rgb2gray (a); podzaplet (2,3,2); imshow (b); c = im2bw (a); podzaplet (2,3,3); imshow (c); d = neprilagođena (b); podzaplet (2,3,4); imshow (d); e = a; e = rgb2gray (e); podzaplet (2,3,5); imhist (e); imfinfo ('F: \ sažetak kruga \ obrada slike pomoću matlab \ beard-man.jpg') = veličina (a) % mapa boja ('proljeće')

U varijablu 'a' uvozimo sliku pomoću naredbe imread ('naziv datoteke'), a zatim izrađujemo crtež '2' retka i '3' stupca pomoću podplota (redak, stupac, položaj) i prikazujemo uvezenu sliku na položaju ' 1 '. Za prikaz slike koristimo naredbu imshow ('naziv datoteke') .
Ispod je nekoliko naredbi za izvršavanje neke osnovne obrade prenesene slike:
- U varijabli 'b' pretvaramo RGB sliku u sliku intenziteta sive pomoću naredbe rgb2gray ('naziv datoteke') i prikazujemo je u crtežu na položaju '2'.
- U varijabli 'c' pretvaramo sliku u binarnu sliku ili možete reći u formatu '0' (crno) i '1' (bijelo) pomoću naredbe im2bw ('naziv datoteke') i prikazom u crtežu na položaj '3'.
- U varijabli 'd' prilagođavamo ili preslikavamo vrijednosti intenziteta slike u sivim tonovima pomoću naredbe imadjust ('naziv datoteke') i prikazujemo je u crtežu na položaju '4'.
- U varijabli 'e' crtamo histogram slike u sivim tonovima pomoću naredbe imhist ('naziv datoteke') i prikazujemo ga u crtežu na položaju '5'. Za crtanje histograma uvijek morate pretvoriti sliku u sive nijanse i tada ćete moći vidjeti histogram te grafičke datoteke.
- Naredba Imfinfo ('naziv datoteke s lokacijom') koristi se za prikaz podataka o grafičkoj datoteci.
- naredba = size ('filename') koristi se za prikaz veličine i ravnina boja određene grafičke datoteke.
- mapama boja ('proljeće') koristi se za promjenu vrste mapa boja grafičke datoteke. Ovdje sam u svom kodu ovu naredbu postavio kao komentar, ali možete je koristiti uklanjanjem znaka postotka. Postoje mnoge vrste boja u MATLAB-u poput Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines i Spring.
Kao i ovi, u MATLAB-u postoji niz naredbi koje se mogu koristiti za izvršavanje različitih zadataka, funkcije obrade slika u MATLAB-u možete provjeriti slijedeći vezu.
2. Obrada slike s MATLAB GUI
Izrada grafičkog korisničkog sučelja MATLAB za obradu slika
Za izgradnju GUI-a (grafičko korisničko sučelje) za obradu slika pokrenite GUI utipkavanjem naredbe u naredbenom prozoru .
vodič
Otvorit će se skočni prozor, a zatim odaberite novi prazni GUI kao što je prikazano na donjoj slici,

Sada moramo odabrati broj tipki (svaka tipka će izvršiti drugačiji zadatak) i jednu os za prikaz slike.
Da biste promijenili veličinu ili promijenili oblik tipke ili osi, samo kliknite na nju i moći ćete povući kutove gumba. Dvostrukim klikom na bilo koji od njih moći ćete promijeniti boju, niz, oznaku i druge opcije tog određenog gumba. Nakon prilagodbe izgledat će ovako


Tipke možete prilagoditi prema vašem izboru. Sada kada to spremite, kod se generira u prozoru uređivača MATLAB-a. Uredite generirani kôd da biste postavili zadatak za različite tipke. Ispod smo uredili MATLAB kod.
MATLAB GUI kod za obradu slika
Kompletni MATLAB kôd za obradu slika pomoću MATLAB GUI- a dat je na kraju ovog projekta. Dalje ovdje uključujemo GUI datoteku (.fig) i datoteku koda (.m) za preuzimanje, pomoću kojih možete prilagoditi tipke ili veličinu osi prema vašim zahtjevima. Uređivali smo generirani kod kako je objašnjeno u nastavku.
U funkciji 'uploadimage' kopirajte i zalijepite donji kod da biste datoteku umetnuli s računala. Ovdje se naredba uigetfile ('vrsta ekstenzije slike') koristi za uvoz slike u MATLAB GUI. Pročitajte tu datoteku pomoću naredbe imread (), a zatim je prikažite naredbom imshow () na axes1 pomoću osi (handles.axes1) . Sada, naredbom setappdata (), pohranite varijablu u GUI tako da će varijabla biti dostupna jednom dijelu GUI-a drugom dijelu GUI-a.
a = uigetfile ('. jpg') a = nepročitano (a); sjekire (ručke.sjeki1); imshow (a); setappdata (0, 'a', a)

Sada ćete u svakoj funkciji vidjeti naredbu getappdata () koja se koristi za dohvaćanje podataka koji su pohranjeni pomoću setappdata () u GUI-u.
Ovdje ćemo objasniti osam najčešće korištenih funkcija u obradi slika
|
S. Ne. |
Naredba |
Naziv gumba |
Zadatak koji treba izvršiti |
|
1. |
uigetfile () |
Učitaj sliku |
Kliknite za uvoz slike s diska |
|
2. |
rgb2gray () |
RGB u Gray |
Kliknite za pretvaranje RGB slike u sive tonove |
|
3. |
im2bw () |
Pretvori u binarnu sliku |
Kliknite za pretvaranje slike u binarnu |
|
4. |
- |
PONOVNO PONAŠATI |
Kliknite da biste resetirali sliku kao izvornu |
|
5. |
imhist () |
Histogram |
Kliknite da biste vidjeli histogram slike |
|
6. |
neizvršenje () |
Slika komplementa |
Kliknite za provjeru slike komplementa |
|
7. |
rub (naziv datoteke, metoda) |
Otkrivanje rubova |
Kliknite da biste otkrili rubove na slici |
|
8. |
imrotirati (naziv datoteke, kut) |
Rotirajte u smjeru kazaljke na satu |
Kliknite za rotiranje slike u smjeru kazaljke na satu |
|
9. |
imrotirati (naziv datoteke, kut) |
Rotirajte u smjeru suprotnom od kazaljke na satu |
Kliknite za rotiranje slike u smjeru suprotnom od kazaljke na satu |

1. Pretvorite RGB sliku u sive tonove
U funkciji 'rgb2gray' kopirajte i zalijepite donji kod za pretvaranje RGB slike u sive s pomoću naredbe rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); sjekire (ručke.sjeki1); imshow (agray);

2. Pretvori u binarnu sliku
U funkciji 'im2bw' kopirajte i zalijepite donji kod da biste sliku pretvorili u binarnu sliku ili možete reći u formatu '0' (crno) i '1' (bijelo) pomoću naredbe im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); sjekire (ručke.sjeki1); imshow (abw);

3. Vratite na izvornu sliku
U funkciji 'reset' kopirajte i zalijepite donji kod da biste resetirali uređenu sliku u izvornu sliku.
a = getappdata (0, 'a'); sjekire (ručke.sjeki1); imshow (a);

4. Nacrtaj histogram slike
U funkciji 'histogram' kopirajte i zalijepite donji kôd za crtanje histograma slike u sivim tonovima pomoću naredbe imhist ('naziv datoteke') i prikažite ga na osi1 . Za crtanje histograma uvijek morate pretvoriti sliku u sive nijanse i tada ćete moći vidjeti histogram te grafičke datoteke.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); sjekire (ručke.sjeki1); imhist (ahist);

5. Pretvori u sliku komplementa
U funkciji 'complementimage' kopirajte i zalijepite donji kod da biste vidjeli komplement umetnute grafičke datoteke pomoću naredbe imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = neispunjenje (acomp); sjekire (ručke.sjeki1); imshow (acomp);

6. Otkrivanje rubova Canny metodom
U funkciji 'edge' kopirajte i zalijepite donji kod da biste otkrili i pronašli rubove na sivoj skali pomoću naredbe edge ('naziv datoteke', 'metoda') . Na mjestu metode možete birati između ove tri, Canny, Prewitt i montaža . Za otkrivanje rubova koristimo Canny metodu. Također ne možete otkriti rub izravno s izvorne slike, prvo ga morate pretvoriti u sive tonove, a zatim možete moći otkriti rubove.
a = getappdata (0, 'a'); rub = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' osi (handles.axes1); imshow (ivica);

7. Rotirajte sliku u smjeru kazaljke na satu
U funkciji 'u smjeru kazaljke na satu , kopirajte i zalijepite donji kod za okretanje slike u smjeru kazaljke na satu pomoću naredbe imrotate (naziv datoteke,' angle ')
a = getappdata (0, 'a'); aclock = a; aclock = imrotirati (aclock, 270); sjekire (ručke.sjeki1); imshow (aclock);

8. Rotirajte sliku u smjeru suprotnom od kazaljke na satu
U funkciji 'u smjeru suprotnom od smjera kazaljke na satu , kopirajte i zalijepite donji kod da biste zakrenuli sliku u smjeru suprotnom od kazaljke na satu pomoću naredbe imrotate (naziv datoteke,' angle ')
a = getappdata (0, 'a'); aclock = a; aclock = imrotirati (aclock, 90); sjekire (ručke.sjeki1); imshow (aclock);

Pokrenite MATLAB GUI kod za obradu slika
Sada kliknite gumb 'RUN' da biste pokrenuli uređeni kod u.m datoteci

MATLAB-u će trebati nekoliko sekundi da odgovori, nemojte kliktati nijedan GUI gumb dok MATLAB u donjem lijevom kutu ne prikaže poruku zauzetosti, kao što je prikazano dolje,

Kad je sve spremno, uvezite sliku s računala klikom na gumb 'Učitaj sliku'. Sada ćete sliku moći pretvoriti ili zakrenuti klikom na bilo koji gumb u skladu s tim. Ispod tablice prikazat će vam zadatak koji izvršavamo klikom bilo kojeg određenog gumba:

Rezultat na kliku svakog gumba dat će prikazan ispod,

Kompletan rad svakog gumba prikazan je u videozapisu ispod.
Možete čak i napraviti naprednu razinu obrade slika s alatom Image Processing Toolbox koji možete kupiti na službenim stranicama MATHWORKS-a, neki od naprednih postupaka navedeni su u nastavku:
- Geometrijske operacije
- Blok operacije
- Linearno filtriranje i dizajn filtra
- Preobražava
- Analiza i poboljšanje slike
- Binarne operacije slika
