- 1. Obdelava slik z uporabo okna urejevalnika MATLAB
- 2. Obdelava slike z MATLAB GUI
- Ustvarjanje grafičnega uporabniškega vmesnika MATLAB za obdelavo slik
- MATLAB GUI koda za obdelavo slik
- Zaženi MATLAB GUI kodo za obdelavo slik
Predstavljajte si, da svojo kamero usmerite na nek predmet in vam ta pove ime tega predmeta. Ja, Google Lens v pametnih telefonih Android počne isto stvar z obdelavo slik. To daje računalniku vizijo, da stvari zazna in prepozna in ustrezno ukrepa. Obdelava slik ima veliko aplikacij, kot so zaznavanje in prepoznavanje obrazov, odtis palca, razširjena resničnost, OCR, skeniranje črtne kode in še veliko več. Za obdelavo slik je na voljo veliko programske opreme, med njimi je za začetek najprimernejši MATLAB.
MATLAB lahko izvede veliko vnaprejšnjih postopkov obdelave slik, toda za začetek obdelave slik v MATLAB-u bomo tukaj razložili nekaj osnovnih operacij, kot so RGB v sivo, zasuk slike, binarna pretvorba itd. Nadalje lahko izdelate avtomatizirane programe za odstranjevanje šuma, slike jasnost, filtriranje z uporabo funkcij, razloženih v tej vadnici.
Preden nadaljujete, če ste nov v MATLAB-u, si oglejte naše prejšnje vadnice MATLAB-a za boljše podcenjevanje:
- Uvod v MATLAB: kratek uvod
- Povezava Arduina z MATLAB - utripajoča LED
- Upravljanje enosmernega motorja z uporabo MATLAB in Arduino
- Nadzor koračnega motorja z uporabo MATLAB in Arduino
- Kako narisati graf temperature v realnem času z uporabo MATLAB
V MATLAB-u, kot vedno, obstajata dva načina za izvajanje katerega koli algoritma za obdelavo slik, eden je z neposrednim vnosom ukaza v okno urejevalnika / ukaza, drugi pa z ustvarjanjem GUI-ja za istega. Tukaj vam bomo prikazali oba načina za izvajanje osnovnih operacij obdelave slik v MATLAB-u.
1. Obdelava slik z uporabo okna urejevalnika MATLAB
Zdaj bomo v okno urejevalnika zapisali kodo za izvajanje nekaterih osnovnih operacij obdelave slik. Če se želite seznaniti z vso osnovno terminologijo, ki se uporablja v MATLAB, sledite povezavi. Kopirajte in prilepite spodnjo kodo v okno urejevalnika, a = neprebrano ('F: \ digest vezja \ obdelava slike z uporabo matlab \ camerman.jpg'); subplot (2,3,1); imshow (a); b = rgb2gray (a); subplot (2,3,2); imshow (b); c = im2bw (a); subplot (2,3,3); imshow (c); d = neprilagojeno (b); subplot (2,3,4); imshow (d); e = a; e = rgb2gray (e); subplot (2,3,5); imhist (e); imfinfo ('F: \ digest vezja \ obdelava slike z uporabo matlab \ beard-man.jpg') = velikost (a) % colormap ('spring')
V spremenljivko 'a' uvozimo sliko z ukazom imread ('ime datoteke'), nato pa naredimo ploskev '2' vrstice in '3' stolpca s pomočjo podplosa (vrstica, stolpec, položaj) in prikažemo uvoženo sliko na položaju ' 1 '. Za prikaz slike uporabimo ukaz imshow ('ime datoteke') .
Spodaj je nekaj ukazov za izvedbo osnovne obdelave naložene slike:
- V spremenljivki 'b' s pomočjo ukaza rgb2gray ('ime datoteke') pretvorimo RGB sliko v sivinsko sliko in jo prikažemo v ploskvi na položaju '2'.
- V spremenljivki "c", smo pretvorbe slike v binarno sliko ali pa lahko rečemo, v obliki "0" (črna) in "1" (bela) z uporabo ukaza im2bw ("filename") in ga prikazuje v parcel, na položaj '3'.
- V spremenljivki 'd' prilagodimo ali preslikamo vrednosti intenzivnosti slike v sivinah z uporabo ukaza imadjust ('ime datoteke') in jo prikažemo v ploskvi na položaju '4'.
- V spremenljivki 'e' z ukazom imhist ('ime datoteke') narišemo histogram sive sive slike in ga prikažemo v grafikonu na položaju '5'. Za risanje histograma morate sliko vedno pretvoriti v sivine, nato pa boste lahko videli histogram te grafične datoteke.
- Ukaz Imfinfo (»ime datoteke z lokacijo«) se uporablja za prikaz informacij o grafični datoteki.
- ukaz = size ('filename') se uporablja za prikaz velikosti in barvnih ravnin določene grafične datoteke.
- colormap ('spring') se uporablja za spreminjanje vrste barvnega grafičnega zapisa. Tukaj sem v svoji kodi ta ukaz nastavil kot komentar, vendar ga lahko uporabite tako, da odstranite znak odstotka. V MATLAB-u obstajajo številne vrste barv, kot so Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines in Spring.
Tako kot ti tudi v MATLAB-u obstajajo številni ukazi, s katerimi lahko izvajate različne naloge. Funkcije obdelave slik v MATLAB lahko preverite tako, da sledite povezavi.
2. Obdelava slike z MATLAB GUI
Ustvarjanje grafičnega uporabniškega vmesnika MATLAB za obdelavo slik
Za izdelavo grafičnega uporabniškega vmesnika (grafičnega uporabniškega vmesnika) za obdelavo slik zaženite GUI tako, da v ukazno okno vnesete spodnji ukaz.
vodnik
Odpre se pojavno okno, nato izberite nov prazen GUI, kot je prikazano na spodnji sliki,
Zdaj moramo izbrati število tipk (vsak gumb bo opravljal drugačno nalogo) in eno os za prikaz slike.
Če želite spremeniti velikost ali spremeniti obliko gumba ali osi, samo kliknite nanjo in lahko povlečete vogale gumba. Z dvojnim klikom na katero koli od njih boste lahko spremenili barvo, niz, oznako in druge možnosti tega gumba. Po prilagoditvi bo videti tako
Gumbe lahko prilagodite po svoji izbiri. Ko to shranite, se v oknu urejevalnika MATLAB ustvari koda. Uredite ustvarjeno kodo, da nastavite nalogo za različne tipke. Spodaj smo uredili kodo MATLAB.
MATLAB GUI koda za obdelavo slik
Popolna koda MATLAB za obdelavo slik z uporabo MATLAB GUI je podana na koncu tega projekta. Poleg tega sem za prenos vključil datoteko GUI (.fig) in kodno datoteko (.m), s pomočjo katerih lahko prilagodite velikost gumbov ali osi glede na vaše zahteve. Ustvarili smo ustvarjeno kodo, kot je razloženo spodaj.
V funkciji 'uploadimage' kopirajte in prilepite spodnjo kodo, da datoteko vstavite iz računalnika. Tu se za uvoz slike v GUI MATLAB uporablja ukaz uigetfile ('vrsta razširitve slike') . Datoteko preberite z ukazom imread () in jo nato z ukazi imshow () prikažite na axes1 z uporabo osi (handles.axes1) . Zdaj z ukazom setappdata () shranite spremenljivko v GUI, tako da bo spremenljivka dostopna enemu delu GUI drugemu delu GUI.
a = uigetfile ('. jpg') a = neprebrano (a); osi (ročaji.seki1); imshow (a); setappdata (0, 'a', a)
Zdaj boste v vsaki funkciji videli ukaz getappdata (), ki se uporablja za pridobivanje podatkov, ki so shranjeni z uporabo setappdata () v GUI.
Tu bomo razložili osem najpogosteje uporabljenih funkcij pri obdelavi slik
S. Št. |
Ukaz |
Ime gumba |
Naloga, ki jo je treba opraviti |
1. |
uigetfile () |
Naloži sliko |
Kliknite za uvoz slike iz diska |
2. |
rgb2gray () |
RGB za Grey |
Kliknite za pretvorbo slike RGB v sivine |
3. |
im2bw () |
Pretvori v binarno sliko |
Kliknite, če želite sliko pretvoriti v binarno |
4. |
- |
PONASTAVITI |
Kliknite, če želite sliko ponastaviti kot izvirno |
5. |
imhist () |
Histogram |
Kliknite, da si ogledate histogram slike |
6. |
neizpolnitev () |
Dopolni sliko |
Kliknite, da preverite sliko komplementa |
7. |
rob (ime datoteke, metoda) |
Zaznavanje robov |
Kliknite, da zaznate robove na sliki |
8. |
imrotirati (ime datoteke, kot) |
Zavrtite v smeri urnega kazalca |
Kliknite, če želite sliko zasukati v smeri urinega kazalca |
9. |
imrotirati (ime datoteke, kot) |
Zavrtite v levo |
Kliknite, če želite sliko zasukati v levo |
1. Pretvorite sliko RGB v sivine
V funkciji 'rgb2gray' kopirajte in prilepite spodnjo kodo za pretvorbo slike RGB v sivine z uporabo ukaza rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); osi (ročaji.seki1); imshow (agray);
2. Pretvori v binarno sliko
V funkciji 'im2bw' kopirajte in prilepite spodnjo kodo, da sliko pretvorite v binarno sliko, ali pa z ukazom im2bw () izgovorite v obliki '0' (črna) in '1' (bela ) .
a = getappdata (0, 'a'); abw = im2bw (a); osi (ročaji.seki1); imshow (abw);
3. Ponastavite na izvirno sliko
V funkciji 'reset' kopirajte in prilepite spodnjo kodo, da uredite sliko ponastavite na prvotno sliko.
a = getappdata (0, 'a'); osi (ročaji.seki1); imshow (a);
4. Izris histograma slike
V funkciji 'histogram' kopirajte in prilepite spodnjo kodo, da z ukazom imhist ('ime datoteke') narišete histogram slike v sivinah in jo prikažete v osi1 . Za risanje histograma morate sliko vedno pretvoriti v sivine, nato pa boste lahko videli histogram te grafične datoteke.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); osi (ročaji.seki1); imhist (ahist);
5. Pretvori v dopolnilno sliko
V funkciji 'complementimage' kopirajte in prilepite spodnjo kodo, da si ogledate dopolnilo vstavljene grafične datoteke z uporabo ukaza imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = neizpolnitev (acomp); osi (ročaji.seki1); imshow (acomp);
6. Zaznavanje robov s pomočjo metode Canny
V funkciji 'edge' kopirajte in prilepite spodnjo kodo, da zaznate in poiščete robove na sliki v sivinah s pomočjo ukaza edge ('ime datoteke', 'metoda') . Namesto metode lahko izbirate med temi tremi, Canny, Prewitt in montažo . Za zaznavanje robov uporabljamo metodo Canny . Roba tudi ne morete zaznati neposredno s prvotne slike, najprej ga morate pretvoriti v sivine, nato pa lahko zaznate robove.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = rob (aedge , 'Canny') ' osi (ročaji.seki1); imshow (rob);
7. Zavrtite sliko v smeri urnega kazalca
V funkciji "v smeri urnega kazalca" kopirajte in prilepite spodnjo kodo, da sliko zavrtite v smeri urinega kazalca z ukazom imrotate (ime datoteke, "angle")
a = getappdata (0, 'a'); aclock = a; aclock = imrotiraj (aclock, 270); osi (ročaji.seki1); imshow (aclock);
8. Zavrtite sliko v nasprotni smeri urnega kazalca
V funkciji "v nasprotni smeri urnega kazalca" kopirajte in prilepite spodnjo kodo, da sliko zavrtite v nasprotni smeri urnega kazalca z ukazom imrotate (ime datoteke, "angle")
a = getappdata (0, 'a'); aclock = a; aclock = imrotiraj (aclock, 90); osi (ročaji.seki1); imshow (aclock);
Zaženi MATLAB GUI kodo za obdelavo slik
Zdaj kliknite gumb 'RUN', da zaženete urejeno kodo v datoteki.m
MATLAB lahko traja nekaj sekund, da se odzove, ne kliknite na noben gumb GUI, dokler MATLAB v spodnjem levem kotu ne prikaže sporočila o zasedenosti, kot je prikazano spodaj,
Ko je vse pripravljeno, sliko uvozite iz računalnika s klikom na gumb »Naloži sliko«. Zdaj boste sliko lahko pretvorili ali zavrteli s klikom na kateri koli gumb. Spodnja tabela vam bo pokazala nalogo, ki jo izvajamo s klikom katerega koli gumba:
Rezultat ob kliku vsakega gumba bo prikazan spodaj,
Popolno delovanje vsakega gumba je prikazano v spodnjem videoposnetku.
Lahko celo napredujete na ravni obdelave slik z orodjem Image Processing Toolbox, ki ga lahko kupite na uradni strani MATHWORKS, spodaj so navedena nekatera napredna ravnanja:
- Geometrijske operacije
- Blokiranje operacij
- Linearno filtriranje in zasnova filtra
- Preoblikuje
- Analiza in izboljšanje slike
- Binarne slikovne operacije