- 1. Képfeldolgozás a MATLAB Editor ablak használatával
- 2. Képfeldolgozás MATLAB GUI-val
- MATLAB grafikus felhasználói felület létrehozása képfeldolgozáshoz
- MATLAB GUI kód képfeldolgozáshoz
- Futtassa a MATLAB GUI kódot a képfeldolgozáshoz
Képzelje el, hogy a fényképezőgépét valamilyen tárgyra irányítja, és a kamera megmondja az adott objektum nevét. Igen, az Android okostelefonokban a Google Lens ugyanezt teszi a Képfeldolgozás használatával. Ez a számítógép számára képet ad a dolgok észleléséről és felismeréséről, és ennek megfelelően cselekedni. A képfeldolgozás számos alkalmazással rendelkezik, például Arcfelismerés és -felismerés, hüvelykujjlenyomat, kiterjesztett valóság, OCR, Vonalkód-beolvasás és még sok más. A képfeldolgozáshoz rengeteg szoftver áll rendelkezésre, ezek közül a MATLAB a legalkalmasabb a kezdéshez.
A MATLAB számos képfeldolgozási műveletet képes végrehajtani, de a MATLAB képfeldolgozásának megkezdéséhez itt megmagyarázunk néhány alapvető műveletet, például az RGB-t szürkére, a kép elforgatását, a bináris átalakítást stb. egyértelműség, szűrés az oktatóanyagban ismertetett funkciók használatával.
Mielőtt továbblépne, ha még nem ismeri a MATLAB alkalmazást, ellenőrizze a korábbi MATLAB oktatóprogramjainkat, hogy jobban megértsék:
- A MATLAB használatának megkezdése: gyors bemutatás
- Az Arduino és a MATLAB összekapcsolása - villogó LED
- DC motor vezérlés a MATLAB és az Arduino segítségével
- Léptetőmotor vezérlés a MATLAB és az Arduino segítségével
- A valós idejű hőmérsékleti grafikon ábrázolása a MATLAB segítségével
A MATLAB-ban, mint mindig, kétféle módon lehet bármilyen képfeldolgozó algoritmust végrehajtani: az egyik a parancs közvetlen bevitele a szerkesztő / parancs ablakba, a másik pedig ugyanannak a GUI-nak a létrehozása. Itt megmutatjuk mindkét módszert a képfeldolgozás alapvető műveleteinek végrehajtására a MATLAB-ban.
1. Képfeldolgozás a MATLAB Editor ablak használatával
Most a szerkesztő ablakba írjuk a képfeldolgozás néhány alapvető műveletének végrehajtásához szükséges kódot. A linkre kattintva megismerheti a MATLAB-ban használt összes alapvető terminológiát. Másolja és illessze be az alábbi kódot a szerkesztő ablakba, a = imread ('F: \ áramkör-kivonat \ képfeldolgozás a matlab \ camerman.jpg használatával'); altábla (2,3,1); imshow (a); b = rgb2szürke (a); altábla (2,3,2); imshow (b); c = im2bw (a); altábla (2,3,3); imshow (c); d = imadjust (b); altábla (2,3,4); imshow (d); e = a; e = rgb2szürke (e); altábla (2,3,5); imisztikus (e); imfinfo ('F: \ circuit digest \ képfeldolgozás a matlab \ beard-man.jpg' segítségével = méret (a) % colormap ('tavasz')
Az „a” változóban képet importálunk az imread („fájlnév”) paranccsal, majd a „2” és a „3” oszlop diagramját készítjük az alsáv (sor, oszlop, pozíció) segítségével, és az importált képet a pozíción jelenítjük meg ”. 1 '. A kép megjelenítéséhez az imshow ('fájlnév') parancsot használjuk.
Az alábbiakban néhány parancs található a feltöltött kép alapvető feldolgozásának végrehajtására:
- A 'b' változóban az RGB képet szürkeárnyalatos intenzitású képpé alakítjuk az rgb2gray ('fájlnév') paranccsal, és a '2' pozícióban ábrázoljuk.
- A „c” változóban a képet bináris képpé alakítjuk, vagy mondhatja „0” (fekete) és „1” (fehér) formátumban az im2bw ('fájlnév') paranccsal, és a „3” pozíció.
- A 'd' változóban beállítjuk vagy feltérképezzük a szürkeárnyalatos képintenzitás értékeket az imadjust ('fájlnév') paranccsal, és a '4' helyzetben ábrázoljuk.
- Az 'e' változóban ábrázoljuk a szürkeárnyalatos kép hisztogramját az imhist ('fájlnév') paranccsal, és az '5' pozícióban ábrázoljuk. A hisztogram megrajzolásához mindig át kell alakítania a képet szürkeárnyalatosra, és akkor láthatja a grafikai fájl hisztogramját.
- Az Imfinfo ('fájlnév helyével') paranccsal lehet információt megjeleníteni a grafikus fájlról.
- A = size ('fájlnév') paranccsal egy adott grafikai fájl méretét és színsíkját jeleníthetjük meg.
- colormap ('tavasz') a grafikus fájl színtérképének típusának megváltoztatására szolgál. Itt a kódomban ezt a parancsot kommentként állítottam be, de a százalékjel eltávolításával használhatja. A MATLAB-ban sokféle szín létezik, mint például a Jet, a HSV, a meleg, a hűvös, a nyár, az ősz, a tél, a szürke, a csont, a réz, a rózsaszín, a vonalak és a tavasz.
Ezekhez hasonlóan a MATLAB-ban számos parancs található, amelyek különböző feladatok elvégzésére használhatók. A linket követve ellenőrizheti a képfeldolgozási funkciókat a MATLAB-ban.
2. Képfeldolgozás MATLAB GUI-val
MATLAB grafikus felhasználói felület létrehozása képfeldolgozáshoz
Képfeldolgozáshoz szükséges grafikus felhasználói felület (grafikus felhasználói felület) készítéséhez indítsa el a grafikus felületet az alábbi parancs beírásával a parancsablakba .
útmutató
Megnyílik egy felugró ablak, majd válassza ki az új üres GUI- t az alábbi képen látható módon,
Most meg kell választanunk a nyomógombok számát (minden nyomógomb más feladatot fog végrehajtani) és egy tengelyt a kép megjelenítéséhez.
A nyomógomb vagy a tengelyek átméretezéséhez vagy alakjának megváltoztatásához kattintson rá, és húzhatja a gomb sarkát. Ha ezekre duplán kattint, megváltoztathatja az adott gomb színét, karakterláncát, címkéjét és egyéb opcióit. A testreszabás után így fog kinézni
Testreszabhatja a gombokat a választása szerint. Most, amikor ezt elmenti, egy kód jön létre a MATLAB Szerkesztő ablakában . A generált kód szerkesztésével állítsa be a feladatot a különböző nyomógombokhoz. Az alábbiakban szerkesztettük a MATLAB kódot.
MATLAB GUI kód képfeldolgozáshoz
A MATLAB kód a képfeldolgozáshoz a MATLAB GUI segítségével a projekt végén található. A letöltéshez itt hozzáadjuk a GUI fájlt (.fig) és a kódfájlt (.m) is, amelyek segítségével testre szabhatja a gombok vagy az tengelyek méretét az Ön igényei szerint. Az alábbiakban ismertetett módon szerkesztettük a létrehozott kódot.
A 'uploadimage' funkcióban másolja és illessze be az alábbi kódot, hogy beillessze a fájlt a PC-ről. Itt az uigetfile ('képkiterjesztés típusa') parancsot használjuk a kép importálására a MATLAB GUI-ban. Olvasni ezt a fájlt parancs használatával imread () , majd megjeleníti a parancs imshow () a axes1 segítségével tengelyek (handles.axes1) . Most a setappdata () paranccsal tárolja a változót a GUI-ban, így a változó hozzáférhető lesz a GUI egyik része és a GUI másik része számára.
a = uigetfile ('. jpg') a = imread (a); tengelyek (fogantyúk. tengelyek1); imshow (a); setappdata (0, 'a', a)
Most minden függvényben megjelenik a getappdata () parancs, amely a GUI-ban a setappdata () segítségével tárolt adatok lekérésére szolgál.
Itt megmagyarázzuk a képfeldolgozás nyolc általánosan használt funkcióját
S. Nem. |
Parancs |
Gomb neve |
Elvégzendő feladat |
1. |
uigetfile () |
Kép feltöltése |
Kattintson ide, hogy képet importáljon a Lemezről |
2. |
rgb2gray () |
RGB Gray-nek |
Kattintson az RGB kép szürkeárnyalattá alakításához |
3. |
im2bw () |
Konvertálás bináris képpé |
Kattintson a kép binárisra konvertálásához |
4. |
- |
VISSZAÁLLÍTÁS |
Kattintson a kép eredeti állapotának visszaállításához |
5. |
imisztikus () |
Hisztogram |
Kattintson a kép hisztogramjának megtekintéséhez |
6. |
kiegészítés () |
Kiegészítő kép |
Kattintson a kiegészítő kép ellenőrzéséhez |
7. |
él (fájlnév, módszer) |
Éldetektáló |
Kattintson a kép széleinek észleléséhez |
8. |
imrotátum (fájlnév, szög) |
Forgatás az óramutató járásával megegyező irányba |
Kattintson a kép elforgatásához az óramutató járásával megegyező irányba |
9. |
imrotátum (fájlnév, szög) |
Forgassa az óramutató járásával ellentétes irányba |
Kattintson a kép balra forgatásához |
1. Konvertálja az RGB képet szürkeárnyalattá
Az 'rgb2gray' funkcióban másolja és illessze be az alábbi kódot, hogy az RGB képet szürkeárnyalattá alakítsa az rgb2gray () paranccsal.
a = getappdata (0, 'a'); agray = rgb2gray (a); tengelyek (fogantyúk. tengelyek1); imshow (agray);
2. Konvertálás bináris képpé
Az 'im2bw' funkcióban másolja és illessze be az alábbi kódot, hogy a képet bináris képpé alakítsa, vagy mondhatja '0' (fekete) és '1' (fehér) formátumban az im2bw () paranccsal.
a = getappdata (0, 'a'); abw = im2bw (a); tengelyek (fogantyúk. tengelyek1); imshow (abw);
3. Állítsa vissza az eredeti képet
A 'reset' funkcióban másolja és illessze be az alábbi kódot a szerkesztett kép visszaállításához az eredeti képbe.
a = getappdata (0, 'a'); tengelyek (fogantyúk. tengelyek1); imshow (a);
4. Ábrázolja a kép hisztogramját
A 'hisztogram' funkcióban másolja és illessze be az alábbi kódot a szürkeárnyalatos kép hisztogramjának ábrázolásához az imhist ('fájlnév') paranccsal, és jelenítse meg azt tengelyeken1 . A hisztogram megrajzolásához mindig át kell alakítania a képet szürkeárnyalatosra, és akkor láthatja a grafikai fájl hisztogramját.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2szürke (ahist); tengelyek (fogantyúk. tengelyek1); imhist (ahist);
5. Konvertálás kiegészítő képpé
A „complementimage” funkció, másolja be az alábbi kódot, hogy a komplement a beillesztett grafikus fájlt a parancs imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); tengelyek (fogantyúk. tengelyek1); imshow (acomp);
6. Élérzékelés Canny módszerrel
Az 'él' funkcióban másolja és illessze be az alábbi kódot a szürkeárnyalatos kép éleinek észleléséhez és megkereséséhez a parancs élével ('fájlnév', 'módszer') . A módszer helyén e három közül választhat, Canny, Prewitt és montázs . A szél észleléséhez Canny módszert alkalmazunk. Szintén nem ismeri fel az évet közvetlenül az eredeti képből, először szürkeárnyalattá kell konvertálnia, majd felismerheti az éleket.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' tengelyek (fogantyúk. tengelyek1); imshow (aedge);
7. Forgassa a képet az óramutató járásával megegyező irányba
Az 'óramutató járásával megegyező' funkcióban másolja és illessze be az alábbi kódot a kép óramutató járásával megegyező irányba történő forgatásához az imrotate paranccsal (fájlnév, 'szög').
a = getappdata (0, 'a'); aclock = a; aclock = imrotátum (aclock, 270); tengelyek (fogantyúk. tengelyek1); imshow (aclock);
8. Forgassa a képet az óramutató járásával ellentétes irányba
Az 'óramutató járásával ellentétes' funkcióban másolja és illessze be az alábbi kódot, hogy a képet az óramutató járásával ellentétes irányba forgassa az imrotate paranccsal (fájlnév, 'szög').
a = getappdata (0, 'a'); aclock = a; aclock = imrotátum (aclock, 90); tengelyek (fogantyúk. tengelyek1); imshow (aclock);
Futtassa a MATLAB GUI kódot a képfeldolgozáshoz
Most kattintson a 'FUTÁS' gombra a szerkesztett kód futtatásához.m fájlban
A MATLAB válasza néhány másodpercet vehet igénybe, ne kattintson semmilyen GUI gombra, amíg a MATLAB nem foglalja el az üzenetet a bal alsó sarokban, az alábbiak szerint,
Ha minden készen áll, importálja a képet a számítógépről a „Kép feltöltése” gombra kattintva. Mostantól bármelyik gombra kattintva konvertálhatja vagy elforgathatja a képet. Az alábbi táblázat megmutatja azt a feladatot, amelyet az adott gombra kattintva hajtunk végre:
Az egyes gombokra történő kattintás eredménye az alábbiakban látható,
Az egyes gombok teljes működését az alábbi videó mutatja be.
Akár magasabb szintű képfeldolgozást is végezhet a Képfeldolgozó eszközkészlettel, amelyet megvásárolhat a MATHWORKS hivatalos webhelyéről, az előbbi szintű műveletek közül néhány az alábbiakban található:
- Geometriai műveletek
- Blokk műveletek
- Lineáris szűrés és szűrő kialakítás
- Átalakulások
- Képelemzés és javítás
- Bináris képműveletek