- 1. Kuvankäsittely MATLAB Editor -ikkunalla
- 2. Kuvankäsittely MATLAB-käyttöliittymällä
- MATLAB-graafisen käyttöliittymän luominen kuvankäsittelyä varten
- MATLAB GUI -koodi kuvankäsittelyyn
- Suorita MATLAB-GUI-koodi kuvankäsittelyä varten
Kuvittele, että osoitat kamerasi johonkin esineeseen ja kamera kertoo sinulle objektin nimen, kyllä, Google Lens Android-älypuhelimissa tekee saman asian kuvankäsittelyn avulla. Tämä antaa tietokoneelle vision havaita ja tunnistaa asiat ja ryhtyä toimiin sen mukaisesti. Kuvankäsittelyssä on paljon sovelluksia, kuten kasvojentunnistus ja -tunnistus, peukalon vaikutelma, täydennetty todellisuus, tekstintunnistus, viivakoodiskannaus ja paljon muuta. Kuvankäsittelyyn on tarjolla paljon ohjelmistoja, joista alkuun sopivin on MATLAB.
MATLAB voi suorittaa monia kuvankäsittelytoimintoja etukäteen, mutta kuvankäsittelyn aloittamiseksi MATLABissa tässä selitetään joitain perustoimintoja, kuten RGB harmaaksi, kuvan kiertäminen, binaarimuunnos jne. Voit myös tehdä automaattisia ohjelmia kohinanpoistoa, kuvaa varten selkeys, suodatus käyttämällä tässä opetusohjelmassa selitettyjä toimintoja.
Ennen kuin jatkat, jos olet uusi MATLAB-käyttäjä, voit tarkistaa aiemmat MATLAB-opetusohjelmamme paremmin:
- MATLABin käytön aloittaminen: Nopea esittely
- Arduinon ja MATLABin yhdistäminen - vilkkuu LED
- DC-moottorin ohjaus MATLAB: n ja Arduinon avulla
- Askelmoottorin ohjaus MATLAB: n ja Arduinon avulla
- Kuinka piirtää reaaliaikainen lämpötilakaavio MATLAB: n avulla
MATLABissa, kuten aina, on kaksi tapaa suorittaa mikä tahansa kuvankäsittelyalgoritmi, toinen kirjoittamalla komento suoraan editori / komento -ikkunaan ja toinen luomalla GUI samalle. Tässä näytämme sinulle molemmat menetelmät kuvankäsittelyn perustoimintojen suorittamiseksi MATLAB: ssä.
1. Kuvankäsittely MATLAB Editor -ikkunalla
Nyt kirjoitamme koodin joidenkin kuvankäsittelyn perustoimintojen suorittamiseen muokkausikkunaan. Seuraa linkkiä, jotta pääset tutustumaan kaikkiin MATLABissa käytettyihin perustermeihin. Kopioi ja liitä alla oleva koodi muokkausikkunaan, a = imread ('F: \ circuit digest \ kuvankäsittely käyttäen matlab \ camerman.jpg'); alikaavio (2,3,1); imshow (a); b = rgb2harmaa (a); alikaavio (2,3,2); imshow (b); c = im2bw (a); alikaavio (2,3,3); imshow (c); d = epäsäätö (b); alikaavio (2,3,4); imshow (d); e = a; e = rgb2harmaa (e); osa-alue (2,3,5); imhist (e); imfinfo ('F: \ circuit digest \ kuvankäsittely käyttäen Matlab \ beard-man.jpg') = koko (a) % colormap ('spring')
Muuttujassa 'a' tuomme kuvaa käyttämällä komentoa imread ('tiedostonimi') ja teemme sitten piirroksen '2' rivi ja '3' sarakkeesta käyttämällä alikarttaa (rivi, sarake, sijainti) ja näyttämällä tuotu kuva sijainnissa 1 '. Kuvan näyttämiseksi käytämme komentoa imshow ('tiedostonimi') .
Alla on muutama komento, jolla suoritetaan joitakin perustietoja lähetetylle kuvalle:
- Muuttujassa 'b' muunnamme RGB-kuvan harmaasävykokoiseksi kuvaksi käyttämällä komentoa rgb2gray ('tiedostonimi') ja näyttämällä sen juovana sijainnissa '2'.
- Muuttujassa 'c' muunnamme kuvan binaarikuvaksi tai voit sanoa muodossa '0' (musta) ja '1' (valkoinen) käyttämällä komentoa im2bw ('tiedostonimi') ja näyttämällä sen juonena asento '3'.
- Muuttujassa 'd' säädämme tai kartoitamme harmaasävykuvan intensiteettiarvoja käyttämällä komentoa imadjust ('tiedostonimi') ja näyttämällä sen juovana sijainnissa '4'.
- Muuttujassa 'e' piirrämme harmaasävykuvan histogrammin käyttämällä komentoa imhist ('tiedostonimi') ja näyttämällä sen juovana sijainnissa '5'. Histogrammin piirtämistä varten sinun on aina muunnettava kuva harmaasävyksi, jolloin voit nähdä kyseisen graafisen tiedoston histogrammin.
- Imfinfo ('tiedostonimi sijainnilla') -komentoa käytetään graafisen tiedoston tietojen näyttämiseen.
- = size ('tiedostonimi') -komentoa käytetään tietyn graafisen tiedoston koon ja väritasojen näyttämiseen.
- colormap ('spring') käytetään muuttamaan graafisen tiedoston värikartan tyyppiä. Tässä asetin koodissani tämän komennon kommentiksi, mutta voit käyttää sitä poistamalla prosenttimerkin. MATLABissa on monenlaisia värejä, kuten Jet, HSV, kuuma, viileä, kesä, syksy, talvi, harmaa, luu, kupari, vaaleanpunainen, viivat ja kevät.
Näiden tapaan MATLABissa on useita komentoja, joita voidaan käyttää erilaisten tehtävien suorittamiseen. Voit tarkistaa kuvankäsittelytoiminnot MATLABissa seuraamalla linkkiä.
2. Kuvankäsittely MATLAB-käyttöliittymällä
MATLAB-graafisen käyttöliittymän luominen kuvankäsittelyä varten
Kun haluat luoda graafisen käyttöliittymän kuvankäsittelyyn, käynnistä GUI kirjoittamalla alla oleva komento komentoikkunaan .
opas
Ponnahdusikkuna avautuu ja valitse sitten uusi tyhjä käyttöliittymä kuvan alla olevan kuvan mukaisesti,
Nyt meidän on valittava painikkeiden määrä (jokainen painike suorittaa eri tehtävän) ja yksi akseli kuvan näyttämiseksi.
Muuta kokoa tai muuta painikkeen tai akseleiden muotoa napsauttamalla sitä ja voit vetää painikkeen kulmia. Kaksoisnapsauttamalla mitä tahansa näistä voit muuttaa kyseisen painikkeen väriä, merkkijonoa, tagia ja muita vaihtoehtoja. Mukauttamisen jälkeen se näyttää tältä
Voit mukauttaa painikkeita valintasi mukaan. Kun tallennat tämän, koodi luodaan MATLAB: n Editor-ikkunaan . Muokkaa luotua koodia asettaaksesi tehtävän eri painikkeille. Alla olemme muokanneet MATLAB-koodia.
MATLAB GUI -koodi kuvankäsittelyyn
Täydellinen MATLAB-koodi kuvankäsittelyä varten MATLAB-käyttöliittymällä annetaan tämän projektin lopussa. Lisäksi sisällytämme GUI-tiedoston (.fig) ja kooditiedoston (.m) tähän ladattavaksi, jonka avulla voit mukauttaa painikkeiden tai akselien koon vaatimuksesi mukaan. Olemme muokanneet luotua koodia alla kuvatulla tavalla.
Vuonna 'uploadimage' -toiminto, kopioi ja liitä alla koodi lisätä tiedoston tietokoneesta. Tässä komentoa uigetfile ('kuvatunnistetyyppi') käytetään kuvan tuomiseen MATLAB-käyttöliittymään. Lue tiedosto komennolla imread () ja sitten näyttää sen komennolla imshow () on axes1 käyttämällä akselilla (handles.axes1) . Tallenna komento setappdata () nyt muuttuja käyttöliittymään, jotta muuttuja on käyttöliittymän toisen osan käytettävissä GUI: n toisen osan kanssa.
a = uigetfile ('. jpg') a = lukenut (a); kirveet (kahvat. akselit1); imshow (a); setappdata (0, 'a', a)
Nyt jokaisessa toiminnossa näet komennon getappdata (), jota käytetään tietojen hakemiseen, jotka on tallennettu GUI: n setappdata () -toiminnon avulla .
Tässä selitämme kahdeksan yleisesti käytettyä toimintoa kuvankäsittelyssä
S. Ei. |
Komento |
Painikkeen nimi |
Suoritettava tehtävä |
1. |
uigetfile () |
Lataa kuva |
Tuo kuva levyltä napsauttamalla |
2. |
rgb2gray () |
RGB harmaaksi |
Napsauta, jos haluat muuntaa RGB-kuvan harmaasävyksi |
3. |
im2bw () |
Muunna binaarikuvaksi |
Muunna kuva binaariksi napsauttamalla |
4. |
- |
NOLLAA |
Napsauta palauttaaksesi kuvan alkuperäiseksi |
5. |
imhisti () |
Histogrammi |
Napsauta nähdäksesi kuvan histogrammin |
6. |
imcomplement () |
Täydennetty kuva |
Napsauta tarkistaaksesi täydennyskuvan |
7. |
reuna (tiedostonimi, menetelmä) |
Reunan tunnistus |
Napsauta tunnistaaksesi kuvan reunat |
8. |
imrotate (tiedostonimi, kulma) |
Kiertää myötäpäivään |
Napsauta kääntääksesi kuvaa myötäpäivään |
9. |
imrotate (tiedostonimi, kulma) |
Kierrä vastapäivään |
Napsauta kääntääksesi kuvaa vastapäivään |
1. Muunna RGB-kuva harmaasävyksi
Kun 'rgb2gray' toiminto, kopioi ja liitä alla koodi muuntaa RGB-kuvan harmaasävy komennolla rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2harmaa (a); kirveet (kahvat. akselit1); imshow (agray);
2. Muunna binaarikuvaksi
Vuonna 'im2bw' -toiminto, kopioi ja liitä alla koodi muuntaa kuvan binary kuvan tai voit sanoa muodossa '0' (musta) ja '1' (valkoinen) komennolla im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); kirveet (kahvat. akselit1); imshow (abw);
3. Palauta alkuperäinen kuva
Vuonna 'reset' -toiminto, kopioi ja liitä alla koodi palauttaa muokatun kuvan alkuperäiseen kuvaan.
a = getappdata (0, 'a'); kirveet (kahvat. akselit1); imshow (a);
4. Piirrä kuvan histogrammi
Kun 'histogrammin' toiminto, kopioi ja liitä alla koodi piirtää histogrammin harmaasävy- kuvan komennolla imhist (tiedostonimi) ja näyttää sen sisään axes1 . Histogrammin piirtämistä varten sinun on aina muunnettava kuva harmaasävyksi, jolloin voit nähdä kyseisen graafisen tiedoston histogrammin.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2harmaa (ahist); kirveet (kahvat. akselit1); imhist (ahist);
5. Muunna täydentäväksi kuvaksi
Vuonna 'complementimage' -toiminto, kopioi ja liitä alla koodi nähdä täydentää asetetun graafisen tiedoston komennolla imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = epätäydellinen (acomp); kirveet (kahvat. akselit1); imshow (acomp);
6. Reunojen tunnistus Canny-menetelmällä
Kun 'reuna' toiminto, kopioi ja liitä alla koodi havaita ja löytää reunojen harmaasävykuvan komennolla reuna ('filename', 'menetelmä') . Tilalle menetelmän voit valita näistä kolmesta, Canny, Prewitt ja montaasi . Reunatunnistuksessa käytetään Canny- menetelmää. Et myöskään voi tunnistaa reunaa suoraan alkuperäisestä kuvasta, ensin sinun on muunnettava se harmaasävyiksi ja sitten voit tunnistaa reunat.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2harmaa (aedge); aedge = reuna (aedge , 'Canny') ' -akselit ( kahvat. akselit1); imshow (aedge);
7. Kierrä kuvaa myötäpäivään
Kun 'myötäpäivään' toiminto, kopioi ja liitä alla koodi kiertää kuvaa myötäpäivään komennolla imrotate (tiedostonimi, 'kulma')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); kirveet (kahvat. akselit1); imshow (aclock);
8. Kierrä kuvaa vastapäivään
Kun 'vastapäivään' toiminto, kopioi ja liitä alla koodi kiertää kuvaa vastapäivään komennolla imrotate (tiedostonimi, 'kulma')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); kirveet (kahvat. akselit1); imshow (aclock);
Suorita MATLAB-GUI-koodi kuvankäsittelyä varten
Napsauta nyt RUN-painiketta suorittaaksesi muokatun koodin.m-tiedostossa
MATLAB voi viedä vastauksen muutaman sekunnin ajan, älä napsauta mitään GUI-painikkeita, ennen kuin MATLAB näyttää varattu viesti vasemmassa alakulmassa alla olevan kuvan mukaisesti,
Kun kaikki on valmis, tuo kuva tietokoneesta napsauttamalla Lähetä kuva -painiketta. Nyt voit muuntaa tai kiertää kuvaa napsauttamalla mitä tahansa painiketta vastaavasti. Taulukon alapuolella näkyy tehtävä, jonka suoritamme minkä tahansa painikkeen napsautuksella:
Tulokset kunkin painikkeen napsautuksesta antavat alla olevan kuvan,
Kunkin painikkeen täydellinen toiminta on esitetty alla olevassa videossa.
Voit jopa tehdä edistyneen tason kuvankäsittelyn Kuvankäsittelytyökalupaketin avulla, jonka voit ostaa MATHWORKSin viralliselta sivustolta. Jotkut ennakkotason toiminnoista on lueteltu alla:
- Geometriset toiminnot
- Estä toiminnot
- Lineaarinen suodatus ja suodattimen suunnittelu
- Muunnokset
- Kuvan analysointi ja parantaminen
- Binaarikuvatoiminnot