- 1. Vaizdų apdorojimas naudojant MATLAB redaktoriaus langą
- 2. Vaizdų apdorojimas naudojant MATLAB GUI
- MATLAB grafinės vartotojo sąsajos kūrimas vaizdų apdorojimui
- Vaizdų apdorojimo MATLAB GUI kodas
- Paleiskite vaizdų apdorojimo MATLAB GUI kodą
Įsivaizduokite, kad nukreipiate fotoaparatą į kokį nors objektą, o kamera nurodo to objekto pavadinimą, taip, „ Google Lens “ „Android“ išmaniuosiuose telefonuose tą patį daro naudodama vaizdų apdorojimą. Tai suteikia kompiuteriui viziją aptikti ir atpažinti dalykus bei atitinkamai atlikti veiksmus. Vaizdų apdorojimas turi daugybę programų, tokių kaip veido aptikimas ir atpažinimas, nykščio atspaudas, išplėstoji realybė, OCR, brūkšninių kodų nuskaitymas ir daug daugiau. Vaizdų apdorojimui yra daugybė programinės įrangos, iš kurių MATLAB yra tinkamiausia pradėti.
MATLAB gali atlikti daugybę išankstinių vaizdo apdorojimo operacijų, tačiau norint pradėti naudoti vaizdų apdorojimą MATLAB, čia paaiškinsime kai kurias pagrindines operacijas, pvz., RGB į pilką, pasuksime vaizdą, dvejetainį keitimą ir pan. Toliau galite kurti automatines triukšmo šalinimo, vaizdo aiškumas, filtravimas naudojant šiame pamokoje paaiškintas funkcijas.
Prieš tęsdami toliau, jei dar nesinaudojote „MATLAB“, galite patikrinti ankstesnes „MATLAB“ mokymo programas, kad geriau suprastumėte:
- Darbo su MATLAB pradžia: greita įžanga
- „Arduino“ sąsaja su MATLAB - mirksi šviesos diodas
- Nuolatinės srovės variklio valdymas naudojant MATLAB ir „Arduino“
- Žingsninio variklio valdymas naudojant MATLAB ir „Arduino“
- Kaip parengti realaus laiko temperatūros grafiką naudojant MATLAB
MATLAB, kaip visada, yra du būdai atlikti bet kokį vaizdo apdorojimo algoritmą. Vienas iš jų yra tiesiogiai įvesti komandą redaktoriaus / komandų lange, o kitas - sukurti to paties GUI. Čia mes parodysime abu metodus, kaip atlikti pagrindines vaizdo apdorojimo operacijas MATLAB.
1. Vaizdų apdorojimas naudojant MATLAB redaktoriaus langą
Dabar redaktoriaus lange parašysime kai kurių pagrindinių vaizdo apdorojimo operacijų atlikimo kodą. Norėdami susipažinti su visa pagrindine terminologija, naudojama MATLAB, spustelėkite nuorodą. Nukopijuokite ir įklijuokite žemiau esantį kodą redaktoriaus lange, a = imread ('F: \ grandinės santrauka \ vaizdo apdorojimas naudojant matlab \ camerman.jpg'); subplotas (2,3,1); imshow (a); b = rgb2pilkė (a); subplotas (2,3,2); imshow (b); c = im2bw (a); subplotas (2,3,3); imshow (c); d = nekoreguoti (b); subplotas (2,3,4); imshow (d); e = a; e = rgb2gray (e); subplotas (2,3,5); imistinis (e); imfinfo ('F: \ grandinės santrauka \ vaizdo apdorojimas naudojant matlab \ beard-man.jpg') = dydis (a) % colormap ('pavasaris')
Kintamajame „a“ importuojame vaizdą naudodami komandą imread („failo vardas“) , tada sudarome „2“ eilutės ir „3“ stulpelio diagramą naudodami subplotą (eilutė, stulpelis, padėtis) ir importuojamą vaizdą rodome pozicijoje “ 1 “. Norėdami parodyti vaizdą, mes naudojame komandą imshow ('failo vardas') .
Žemiau yra keletas komandų, kaip atlikti pagrindinį įkelto vaizdo apdorojimą:
- Kintamajame „b“ mes konvertuojame RGB vaizdą į pilkos spalvos intensyvumo vaizdą naudodami komandą rgb2gray („failo vardas“) ir parodydami ją sklype „2“ pozicijoje.
- Kintamajame „c“ mes konvertuojame vaizdą į dvejetainį vaizdą arba galite pasakyti „0“ (juodas) ir „1“ (baltas) formatu naudodami komandą im2bw („failo vardas“) ir pateikdami ją sklype pozicija „3“.
- Kintamajame „d“ koreguojame arba atvaizduojame pilkos spalvos vaizdo intensyvumo reikšmes, naudodami komandą „ imadjust“ („failo vardas“) ir parodydami ją sklype „4“ padėtyje.
- Kintamajame „e“ mes braižome pilkosios spalvos vaizdo histogramą naudodami komandą „ imhist“ („failo vardas“) ir parodydami ją sklype „5“ pozicijoje. Norėdami nubraižyti histogramą, visada turite konvertuoti vaizdą į pilkos spalvos skalę, tada galėsite matyti to grafinio failo histogramą.
- „Imfinfo“ („failo pavadinimas su vieta“) komanda naudojama informacijai apie grafinį failą rodyti.
- = dydis ('failo pavadinimas') komanda naudojama tam tikro grafinio failo dydžio ir spalvų plokštumoms rodyti.
- colormap ('pavasaris') naudojamas pakeisti grafinio failo spalvos žemėlapio tipą. Čia savo kode aš nustatiau šią komandą kaip komentarą, bet jūs galite ją naudoti pašalindami procentinį ženklą. „MATLAB“ yra daugybė spalvų tipų, tokių kaip „Jet“, „HSV“, „Hot“, „Cool“, „Summer“, „Rudens“, „Winter“, „Grey“, „Bone“, „Copper“, „Vario“, „Pink“, „Lines“ ir „Spring“.
Kaip ir šie, MATLAB yra daugybė komandų, kurias galima naudoti skirtingoms užduotims atlikti. Jūs galite patikrinti vaizdo apdorojimo funkcijas MATLAB spustelėdami nuorodą.
2. Vaizdų apdorojimas naudojant MATLAB GUI
MATLAB grafinės vartotojo sąsajos kūrimas vaizdų apdorojimui
Norėdami sukurti vaizdo apdorojimo GUI (grafinę vartotojo sąsają), paleiskite GUI komandų lange įvesdami žemiau esančią komandą.
vadovas
Bus atidarytas iššokantis langas, tada pasirinkite naują tuščią GUI, kaip parodyta žemiau esančiame paveikslėlyje,
Dabar turime pasirinkti mygtukų skaičių (kiekvienas mygtukas atliks skirtingą užduotį) ir vieną ašį vaizdui rodyti.
Norėdami pakeisti mygtuką arba pakeisti mygtuko ar ašių formą, tiesiog spustelėkite jį ir galėsite vilkti mygtuko kampus. Du kartus spustelėję bet kurį iš šių, galėsite pakeisti konkretaus mygtuko spalvą, eilutę, žymą ir kitas parinktis. Po pritaikymo tai atrodys taip
Mygtukus galite pritaikyti pagal savo pasirinkimą. Dabar, kai tai išsaugosite, MATLAB redaktoriaus lange bus sugeneruotas kodas. Redaguokite sugeneruotą kodą, kad nustatytumėte užduotį skirtingiems mygtukams. Žemiau mes redagavome MATLAB kodą.
Vaizdų apdorojimo MATLAB GUI kodas
Pilnas vaizdų apdorojimo MATLAB kodas naudojant MATLAB GUI pateikiamas šio projekto pabaigoje. Čia mes taip pat įtraukiame GUI failą (.fig) ir kodo failą (.m), kad galėtumėte atsisiųsti, naudodami juos galite pritaikyti mygtukų ar ašių dydį pagal savo reikalavimus. Redagavome sugeneruotą kodą, kaip paaiškinta toliau.
Į "uploadimage" funkcija, nukopijuokite ir įklijuokite žemiau kodą įterpti failą iš kompiuterio. Čia komanda „ uigetfile“ („vaizdo plėtinio tipas“) naudojama vaizdams importuoti į MATLAB GUI. Skaityti šį failą naudojant komandinę imread () ir tada rodyti jį su komandų imshow () ant axes1 naudojant ašių (handles.axes1) . Dabar naudodami komandą setappdata (), išsaugokite kintamąjį GUI, kad kintamasis būtų prieinamas vienai GUI daliai ir kitai GUI daliai.
a = uigetfile ('. jpg') a = perskaitytas (a); kirviai (rankenos.ašys1); imshow (a); setappdata (0, 'a', a)
Dabar kiekvienoje funkcijoje pamatysite komandą getappdata (), kuri naudojama norint gauti duomenis, kurie yra saugomi naudojant GUI setappdata ().
Čia mes paaiškinsime aštuonias dažniausiai naudojamas vaizdo apdorojimo funkcijas
S. Nr. |
Komanda |
Mygtuko pavadinimas |
Užduotis, kurią reikia atlikti |
1. |
uigetfile () |
Įkelti paveikslėlį |
Spustelėkite, jei norite importuoti vaizdą iš disko |
2. |
rgb2gray () |
RGB pilkas |
Spustelėkite, jei norite konvertuoti RGB vaizdą į pilkos spalvos skalę |
3. |
im2bw () |
Konvertuoti į dvejetainį vaizdą |
Spustelėkite, jei norite konvertuoti vaizdą į dvejetainį |
4. |
- |
ATSTATYTI |
Spustelėkite, kad atkurtumėte vaizdą kaip originalą |
5. |
imistas () |
Histograma |
Spustelėkite norėdami pamatyti paveikslėlio histogramą |
6. |
papildyti () |
Papildomas vaizdas |
Spustelėkite norėdami patikrinti papildymo vaizdą |
7. |
kraštas (failo pavadinimas, metodas) |
Krašto aptikimas |
Spustelėkite, jei norite aptikti paveikslėlio kraštus |
8. |
imrotuoti (failo pavadinimas, kampas) |
Pasukite pagal laikrodžio rodyklę |
Spustelėkite norėdami pasukti vaizdą pagal laikrodžio rodyklę |
9. |
imrotuoti (failo pavadinimas, kampas) |
Pasukite prieš laikrodžio rodyklę |
Spustelėkite norėdami pasukti vaizdą prieš laikrodžio rodyklę |
1. Konvertuokite RGB vaizdą į pilkos spalvos skalę
Į "rgb2gray" funkcija, nukopijuokite ir įklijuokite žemiau kodą konvertuoti RGB vaizdą į pustoniai naudojant komandinę rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); kirviai (rankenos.ašys1); imshow (agray);
2. Konvertuoti į dvejetainį vaizdą
Į "im2bw" funkcija, nukopijuokite ir įklijuokite žemiau kodą konvertuoti vaizdą į dvejetainį vaizdas arba galite pasakyti formato '0' (juoda) ir "1" (baltas), naudojant komandinę im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); kirviai (rankenos.ašys1); imshow (abw);
3. Atkurkite pradinį vaizdą
Į "reset" funkcija, nukopijuokite ir įklijuokite žemiau kodą naujo redaguotą vaizdą į pradinį vaizdą.
a = getappdata (0, 'a'); kirviai (rankenos.ašys1); imshow (a);
4. Nubraižykite vaizdo histogramą
Į "histogramos" funkcija, nukopijuokite ir įklijuokite žemiau kodą sklypas iš pustoniai atvaizdo histogramos naudojant komandinę imhist ("failo pavadinimo") ir rodyti jį ant axes1 . Norėdami nubraižyti histogramą, visada turite konvertuoti vaizdą į pilkos spalvos skalę, tada galėsite matyti to grafinio failo histogramą.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); kirviai (rankenos.ašys1); imistiškas (ahistas);
5. Konvertuoti į papildomą vaizdą
Į "complementimage" funkcija, nukopijuokite ir įklijuokite žemiau kodas pamatyti įterptų grafikos papildyti failą naudodami komandų imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = nepapildymas (acomp); kirviai (rankenos.ašys1); imshow (acomp);
6. Kraštų aptikimas naudojant „Canny“ metodą
Į "kraštas" funkcija, nukopijuokite ir įklijuokite žemiau kodą aptikti ir rasti kraštus pilkais pustoniais vaizdas naudojant komandų pranašumą ('filename "," metodas ") . Metodo vietoje galite pasirinkti iš šių trijų: Canny, Prewitt ir montažą . Kraštų aptikimui naudojame „ Canny“ metodą. Be to, jūs negalite aptikti krašto tiesiai iš pradinio vaizdo, pirmiausia turite konvertuoti jį į pilkos spalvos skalę, o tada galėsite nustatyti kraštus.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' ašys (rankenos.ašys1); imshow (aedge);
7. Pasukite vaizdą pagal laikrodžio rodyklę
Į "laikrodžio" funkcija, nukopijuokite ir įklijuokite žemiau kodą pasukti laikrodžio rodyklės kryptimi vaizdas naudojant komandinę imrotate (filename, "kampas")
a = getappdata (0, 'a'); aclock = a; aclock = imrotatas (aclock, 270); kirviai (rankenos.ašys1); imshow (aclock);
8. Pasukite vaizdą prieš laikrodžio rodyklę
Į "prieš laikrodžio" funkcija, nukopijuokite ir įklijuokite žemiau kodą pasukti į prieš laikrodžio rodyklę vaizdas naudojant komandinę imrotate (filename, "kampas")
a = getappdata (0, 'a'); aclock = a; aclock = imrotatas (aclock, 90); kirviai (rankenos.ašys1); imshow (aclock);
Paleiskite vaizdų apdorojimo MATLAB GUI kodą
Dabar spustelėkite mygtuką „Vykdyti“, kad paleistumėte redaguotą kodą.m faile
Gali praeiti kelios sekundės, kol MATLAB atsakys, nespustelėkite jokių GUI mygtukų, kol MATLAB apatiniame kairiajame kampe rodomas užimtas pranešimas, kaip parodyta žemiau,
Kai viskas bus paruošta, importuokite vaizdą iš kompiuterio spustelėdami mygtuką „Įkelti vaizdą“. Dabar galėsite konvertuoti arba pasukti vaizdą atitinkamai spustelėdami bet kurį mygtuką. Žemiau esančioje lentelėje bus rodoma užduotis, kurią atliekame spustelėję bet kurį konkretų mygtuką:
Kiekvieno mygtuko paspaudimo rezultatas bus parodytas žemiau,
Visiškas mygtuko veikimas parodytas toliau pateiktame vaizdo įraše.
Jūs netgi galite atlikti išplėstinį vaizdo apdorojimo lygį naudodamiesi „Image Processing Toolbox“, kurį galite įsigyti iš oficialios „MATHWORKS“ svetainės, kai kurie išankstinio lygio veiksmai yra išvardyti žemiau:
- Geometrinės operacijos
- Blokuoti operacijas
- Linijinis filtravimas ir filtro dizainas
- Transformuoja
- Vaizdo analizė ir tobulinimas
- Dvejetainio vaizdo operacijos