- 1. Attēlu apstrāde, izmantojot MATLAB redaktora logu
- 2. Attēlu apstrāde ar MATLAB GUI
- MATLAB grafiskās lietotāja saskarnes izveide attēlu apstrādei
- MATLAB GUI kods attēlu apstrādei
- Palaidiet MATLAB GUI kodu attēlu apstrādei
Iedomājieties, ka novirzāt kameru uz kādu objektu, un kamera jums pasaka šī objekta nosaukumu. Jā, Google Lens Android viedtālruņos dara to pašu, izmantojot attēlu apstrādi. Tas dod datoram redzējumu, kā atklāt un atpazīt lietas un atbilstoši rīkoties. Attēlu apstrādē ir daudz lietojumprogrammu, piemēram, sejas noteikšana un atpazīšana, īkšķa nospiedums, paplašinātā realitāte, OCR, svītrkodu skenēšana un daudzas citas. Attēlu apstrādei ir pieejamas daudzas programmatūras, no kurām MATLAB ir vispiemērotākā.
MATLAB var veikt daudzas iepriekšējas attēlu apstrādes darbības, taču, lai sāktu darbu ar attēlu apstrādi MATLAB, šeit mēs izskaidrosim dažas pamata darbības, piemēram, RGB uz pelēku, pagrieziet attēlu, bināro pārveidi utt. Jūs varat arī izveidot automatizētas programmas trokšņu noņemšanai, attēlu skaidrība, filtrēšana, izmantojot šajā apmācībā paskaidrotās funkcijas.
Pirms turpināt darbu, ja esat jauns MATLAB lietotājs, varat pārbaudīt mūsu iepriekšējās MATLAB apmācības, lai labāk novērtētu:
- Darba sākšana ar MATLAB: ātrs ievads
- Arduino saskarne ar MATLAB - mirgo gaismas diode
- Līdzstrāvas motora vadība, izmantojot MATLAB un Arduino
- Stepper motora vadība, izmantojot MATLAB un Arduino
- Kā uzzīmēt reālā laika temperatūras grafiku, izmantojot MATLAB
MATLAB, kā vienmēr, ir divi veidi, kā veikt jebkuru attēlu apstrādes algoritmu, viens ir tieši ievadot komandu redaktora / komandu logā, bet otrs ir izveidot GUI tam pašam. Šeit mēs parādīsim abas metodes attēlu apstrādes pamatdarbību veikšanai MATLAB.
1. Attēlu apstrāde, izmantojot MATLAB redaktora logu
Tagad redaktora logā mēs ierakstīsim kodu dažu attēlu apstrādes pamatdarbību veikšanai. Lai iepazītos ar visu MATLAB izmantoto pamata terminoloģiju, sekojiet saitei. Nokopējiet un ielīmējiet zemāk redzamo kodu redaktora logā, a = imread ('F: \ circuit digest \ attēlu apstrāde, izmantojot matlab \ camerman.jpg'); apakšplāns (2,3,1); imshow (a); b = rgb2pelēks (a); apakšplāns (2,3,2); imshow (b); c = im2bw (a); apakšplāns (2,3,3); imshow (c); d = imadjust (b); apakšplāns (2,3,4); imshow (d); e = a; e = rgb2pelēks (e); apakšplāns (2,3,5); imistisks (e); imfinfo ('F: \ circuit digest \ attēlu apstrāde, izmantojot matlab \ beard-man.jpg') = size (a) % colormap ('spring')
Mainīgajā “a” mēs importējam attēlu, izmantojot komandu imread (“faila nosaukums”), un pēc tam izveidojam diagrammas “2” rindu un “3” kolonnu, izmantojot apakšplātu (rinda, kolonna, pozīcija) un importēto attēlu parādot pozīcijā ” 1 '. Lai parādītu attēlu, mēs izmantojam komandu imshow ('faila nosaukums') .
Tālāk ir norādītas dažas komandas, lai veiktu augšupielādētā attēla pamata apstrādi:
- Mainīgajā “b” mēs pārveidojam RGB attēlu pelēktoņu intensitātes attēlā, izmantojot komandu rgb2gray (“faila nosaukums”) un parādot to sižetā pozīcijā “2”.
- Mainīgajā “c” mēs pārveidojam attēlu binārā attēlā vai arī varat pateikt formātā “0” (melns) un “1” (balts), izmantojot komandu im2bw (“faila nosaukums”) un parādot to zemes gabalā pozīcija '3'.
- Mainīgajā “d” mēs pielāgojam vai kartējam pelēktoņu attēla intensitātes vērtības, izmantojot komandu imadjust (“faila nosaukums”) un parādot to zemes gabalā pozīcijā “4”.
- Mainīgajā 'e' mēs uzzīmējam pelēktoņu attēla histogrammu, izmantojot komandu imhist ('faila nosaukums') un parādot to zemes gabalā pozīcijā '5'. Lai uzzīmētu histogrammu, attēls vienmēr jāpārvērš pelēktoņos, un tad varēsiet redzēt šī grafiskā faila histogrammu.
- Imfinfo ('faila nosaukums ar atrašanās vietu') komandu izmanto, lai parādītu informāciju par grafisko failu.
- Komanda = size ('filename') tiek izmantota, lai parādītu konkrēta grafiskā faila izmēru un krāsu plaknes.
- colormap ('pavasaris') tiek izmantots, lai mainītu grafiskā faila kologrāfiskās kartes veidu. Šeit savā kodā es iestatīju šo komandu kā komentāru, bet jūs varat to izmantot, noņemot procentuālo zīmi. MATLAB ir daudz krāsu veidu, piemēram, Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines un pavasaris.
Tāpat kā šie, MATLAB ir vairākas komandas, kuras var izmantot dažādu uzdevumu veikšanai. Attēlu apstrādes funkcijas varat pārbaudīt MATLAB, sekojot saitei.
2. Attēlu apstrāde ar MATLAB GUI
MATLAB grafiskās lietotāja saskarnes izveide attēlu apstrādei
Lai izveidotu GUI (grafisko lietotāja saskarni) attēlu apstrādei, palaidiet GUI, komandu logā ierakstot zemāk esošo komandu .
vadīt
Tiks atvērts uznirstošais logs, pēc tam atlasiet jaunu tukšu GUI, kā parādīts zemāk esošajā attēlā,
Tagad mums jāizvēlas spiedpogu skaits (katrs spiedpogas izpildīs atšķirīgu uzdevumu) un viena ass, lai parādītu attēlu.
Lai mainītu spiedpogas vai asu formu vai mainītu to formu, vienkārši noklikšķiniet uz tā, un jūs varēsiet vilkt pogas stūrus. Veicot dubultklikšķi uz jebkura no šiem, jūs varēsiet mainīt šīs konkrētās pogas krāsu, virkni, tagu un citas opcijas. Pēc pielāgošanas tas izskatīsies šādi
Pogas varat pielāgot pēc savas izvēles. Tagad, kad to saglabājat, MATLAB redaktora logā tiek ģenerēts kods. Rediģējiet ģenerēto kodu, lai iestatītu uzdevumu dažādiem spiedpogām. Zemāk mēs esam rediģējuši MATLAB kodu.
MATLAB GUI kods attēlu apstrādei
Pilns MATLAB kods attēlu apstrādei, izmantojot MATLAB GUI, ir norādīts šī projekta beigās. Šeit mēs lejupielādēšanai iekļaujam arī GUI failu (.fig) un koda failu (.m), izmantojot kuru jūs varat pielāgot pogu vai asu izmēru atbilstoši jūsu prasībām. Mēs esam rediģējuši ģenerēto kodu, kā paskaidrots tālāk.
In "uploadimage" funkciju, nokopējiet un ielīmējiet tālāk kodu, lai ievietotu failu no datora. Šeit attēlu importēšanai MATLAB GUI tiek izmantota komanda uigetfile ('attēla paplašinājuma tips') . Izlasiet šo failu, izmantojot komandu imread (), un pēc tam parādiet to ar komandu imshow () uz ass1, izmantojot asis (handles.axes1) . Tagad ar komandu setappdata () glabājiet mainīgo GUI, lai mainīgais būtu pieejams vienai GUI daļai un otrai GUI daļai.
a = uigetfile ('. jpg') a = izlasījis (a); cirvji (rokturi.akši1); imshow (a); setappdata (0, 'a', a)
Tagad katrā funkcijā redzēsiet komandu getappdata (), kas tiek izmantota, lai izgūtu datus, kas tiek saglabāti, izmantojot GUI setappdata ().
Šeit mēs izskaidrosim astoņas attēlu apstrādē parasti izmantotās funkcijas
S. Nē. |
Komanda |
Pogas nosaukums |
Veicamais uzdevums |
1. |
uigetfile () |
Augšupielādēt attēlu |
Noklikšķiniet, lai importētu attēlu no diska |
2. |
rgb2gray () |
RGB uz Greju |
Noklikšķiniet, lai pārveidotu RGB attēlu pelēktoņos |
3. |
im2bw () |
Konvertēt uz bināro attēlu |
Noklikšķiniet, lai pārveidotu attēlu binārā formātā |
4. |
- |
ATIESTATĪT |
Noklikšķiniet, lai atiestatītu attēlu kā oriģinālu |
5. |
imists () |
Histogramma |
Noklikšķiniet, lai redzētu attēla histogrammu |
6. |
papildināt () |
Papildināt attēlu |
Noklikšķiniet, lai pārbaudītu papildinājuma attēlu |
7. |
mala (faila nosaukums, metode) |
Malas noteikšana |
Noklikšķiniet, lai noteiktu attēla malas |
8. |
imrotēt (faila nosaukums, leņķis) |
Pagrieziet pulksteņrādītāja kustības virzienā |
Noklikšķiniet, lai pagrieztu attēlu pulksteņrādītāja kustības virzienā |
9. |
imrotēt (faila nosaukums, leņķis) |
Pagrieziet pretēji pulksteņrādītāja kustības virzienam |
Noklikšķiniet, lai pagrieztu attēlu pretēji pulksteņrādītāja kustības virzienam |
1. Konvertējiet RGB attēlu pelēktoņos
In "rgb2gray" funkciju, nokopējiet un ielīmējiet tālāk kodu konvertēt RGB attēlu pelēktoņu ar komandu rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2pelēks (a); cirvji (rokturi.akši1); imshow (agray);
2. Konvertēt uz bināro attēlu
In "im2bw" funkciju, nokopējiet un ielīmējiet tālāk kodu pārvērstu attēlu bināro attēlu vai arī jūs varat teikt formātā "0" (melna) un "1" (balts) ar komandu im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); cirvji (rokturi.akši1); imshow (abw);
3. Atiestatiet uz sākotnējo attēlu
Funkcijā “atiestatīšana” nokopējiet un ielīmējiet zemāk esošo kodu, lai atiestatītu rediģēto attēlu sākotnējā attēlā.
a = getappdata (0, 'a'); cirvji (rokturi.akši1); imshow (a);
4. Uzzīmējiet attēla histogrammu
In "histogrammas" funkciju, nokopējiet un ielīmējiet tālāk koda gabals histogrammu pelēktoņu attēlu, izmantojot komandu imhist ("filename"), un parādīt to uz axes1 . Lai uzzīmētu histogrammu, attēls vienmēr jāpārvērš pelēktoņos, un tad varēsiet redzēt šī grafiskā faila histogrammu.
a = getappdata (0, 'a'); ahist = a; ahists = rgb2pelēks (ahists); cirvji (rokturi.akši1); imistisks (ahists);
5. Konvertēt uz papildinošu attēlu
In "complementimage" funkciju, nokopējiet un ielīmējiet tālāk kodu, lai redzētu papildinājums ievietotā grafisko failu, izmantojot komandu imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); cirvji (rokturi.akši1); imshow (acomp);
6. Malas noteikšana, izmantojot Canny metodi
Funkcijā “mala” nokopējiet un ielīmējiet zemāk esošo kodu, lai noteiktu un atrastu malas pelēktoņu attēlā, izmantojot komandu malu (“faila nosaukums”, “metode”) . Tā vietā metodi jūs varat izvēlēties starp šiem trim, izmanīgs, Prewitt un montāža . Malu noteikšanai mēs izmantojam Canny metodi. Arī jūs nevarat noteikt malu tieši no sākotnējā attēla, vispirms tas jāpārvērš pelēktoņos un pēc tam varat noteikt malas.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2pelēks (aedge); aedge = edge (aedge , 'Canny') ' asis (rokturi. asis1); imshow (aedge);
7. Pagrieziet attēlu pulksteņrādītāja kustības virzienā
In "pulksteņa rādītāja" funkciju, nokopējiet un ielīmējiet tālāk kodu, lai pagrieztu attēlu pulksteņa rādītāja virzienā, izmantojot komandu imrotate (faila nosaukumu, "leņķis")
a = getappdata (0, 'a'); aclock = a; aclock = imrotāts (aclock, 270); cirvji (rokturi.akši1); imshow (aclock);
8. Pagrieziet attēlu pretēji pulksteņrādītāja kustības virzienam
In "pretēji pulksteņa" funkciju, nokopējiet un ielīmējiet tālāk kodu, lai pagrieztu attēlu pretēji pulksteņa rādītāju virzienam, izmantojot komandu imrotate (faila nosaukumu, "leņķis")
a = getappdata (0, 'a'); aclock = a; aclock = imrotāts (aclock, 90); cirvji (rokturi.akši1); imshow (aclock);
Palaidiet MATLAB GUI kodu attēlu apstrādei
Tagad noklikšķiniet uz pogas RUN, lai palaistu rediģēto kodu.m failā
MATLAB var paiet dažas sekundes, lai atbildētu, neklikšķiniet uz nevienas GUI pogas, kamēr MATLAB apakšējā kreisajā stūrī nav redzams aizņemts ziņojums, kā parādīts zemāk,
Kad viss ir gatavs, importējiet attēlu no datora, noklikšķinot uz pogas Augšupielādēt attēlu. Tagad jūs varēsiet pārveidot vai pagriezt attēlu, attiecīgi noklikšķinot uz jebkuras pogas. Zemāk esošajā tabulā tiks parādīts uzdevums, kuru veicam, noklikšķinot uz jebkuras konkrētas pogas:
Rezultāts, noklikšķinot uz katras pogas, tiks parādīts zemāk,
Katras pogas pilnīga darbība ir parādīta zemāk esošajā video.
Jūs pat varat veikt uzlabotu attēlu apstrādes līmeni, izmantojot attēlu apstrādes rīku komplektu, kuru varat iegādāties MATHWORKS oficiālajā vietnē. Daži no iepriekšēja līmeņa darbiem ir uzskaitīti zemāk:
- Ģeometriskās darbības
- Bloķēt operācijas
- Lineārā filtrēšana un filtru dizains
- Pārveido
- Attēlu analīze un uzlabošana
- Binārā attēla darbības