- 1. Pagproseso ng Imahe sa pamamagitan ng paggamit ng MatLAB Editor Window
- 2. Pagproseso ng Imahe gamit ang MATLAB GUI
- Lumilikha ng MATLAB Graphical User Interface para sa Pagpoproseso ng Imahe
- MATLAB GUI Code para sa Pagpoproseso ng Imahe
- Patakbuhin ang MATLAB GUI code para sa Pagpoproseso ng Imahe
Pag-isipan na itinuturo ang iyong camera sa ilang bagay at sasabihin sa iyo ng camera ang pangalan ng bagay na iyon, oo, ang Google Lens sa mga Android smart phone ay gumagawa ng parehong bagay gamit ang Pagproseso ng Imahe. Nagbibigay ito ng paningin sa computer upang makita at kilalanin ang mga bagay at gumawa ng mga pagkilos nang naaayon. Ang pagproseso ng imahe ay maraming mga application tulad ng Pagtuklas sa mukha at pagkilala, impression ng hinlalaki, augmented reality, OCR, Barcode scan at marami pa. Mayroong maraming mga software na magagamit para sa pagproseso ng imahe, kasama ng mga ito ang MATLAB ay ang pinakaangkop upang magsimula.
Ang MATLAB ay maaaring gumanap ng maraming mga pagpapatakbo ng pagproseso ng imaheng advance, ngunit para sa pagsisimula sa pagproseso ng Imahe sa MATLAB, dito namin ipaliliwanag ang ilang pangunahing mga pagpapatakbo tulad ng RGB hanggang Grey, paikutin ang imahe, binary conversion atbp Maaari ka pa ring gumawa ng mga awtomatikong programa para sa pag-aalis ng ingay, imahe kalinawan, pag-filter sa pamamagitan ng paggamit ng mga pagpapaandar na ipinaliwanag sa tutorial na ito.
Bago magpatuloy pa, kung bago ka sa MATLAB maaari mong suriin ang aming nakaraang mga tutorial sa MATLAB para sa mas mahusay na understating:
- Pagsisimula sa MATLAB: Isang Mabilis na Panimula
- Ang interface ng Arduino na may MATLAB - Blinking LED
- DC Motor Control Gamit ang MATLAB at Arduino
- Stepper Motor Control gamit ang MATLAB at Arduino
- Paano Magplano ng Real Time Temperature Graph gamit ang MATLAB
Sa MATLAB, tulad ng lagi, mayroong dalawang paraan upang maisagawa ang anumang algorithm sa pagproseso ng imahe, ang isa ay sa pamamagitan ng direktang pagpasok ng utos sa window ng editor / command at iba pa ay sa pamamagitan ng paglikha ng isang GUI para sa pareho. Dito, ipapakita namin sa iyo ang parehong mga pamamaraan upang maisagawa ang pangunahing mga pagpapatakbo ng pagproseso ng imahe sa MATLAB.
1. Pagproseso ng Imahe sa pamamagitan ng paggamit ng MatLAB Editor Window
Ngayon, isusulat namin ang code para sa pagsasagawa ng ilang pangunahing pagpapatakbo ng pagproseso ng imahe sa window ng editor. Upang maging pamilyar sa lahat ng pangunahing terminolohiya na ginamit sa MATLAB sundin ang link. Kopyahin at i-paste ang code sa ibaba sa window ng editor, a = imread ('F: \ circuit digest \ pagproseso ng imahe gamit ang 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 = hindi tama (b); subplot (2,3,4); imshow (d); e = a; e = rgb2gray (e); subplot (2,3,5); imhist (e); imfinfo ('F: \ circuit digest \ pagproseso ng imahe gamit ang matlab \ beard-man.jpg') = laki (a) % colormap ('spring')
Sa variable na 'a', nag-i-import kami ng imahe gamit ang command imread ('filename') at pagkatapos ay gumagawa ng isang lagay ng row na '2' at haligi '3' gamit ang subplot (row, haligi, posisyon) at ipinapakita ang na-import na imahe sa posisyon ' 1 '. Upang maipakita ang imaheng ginagamit namin ang command imshow ('filename') .
Nasa ibaba ang ilang mga utos upang maisagawa ang ilang pangunahing pagproseso sa na-upload na imahe:
- Sa variable 'b', kinokonversi namin ang imahe ng RGB sa grayscale intensity image sa pamamagitan ng paggamit ng command rgb2gray ('filename') at pagpapakita nito sa plot on posisyon na '2'.
- Sa variable na 'c', binago namin ang imahe sa binary na imahe o maaari mong sabihin sa format ng '0' (itim) at '1' (puti) sa pamamagitan ng paggamit ng command im2bw ('filename') at ipinapakita ito sa isang lagay ng lupa posisyon na '3'.
- Sa variable na 'd', inaayos namin o nagma-map ang mga grayscale na halaga ng imahe ng lakas sa pamamagitan ng paggamit ng command imadjust ('filename') at pagpapakita nito sa plot sa posisyon na '4'.
- Sa variable na 'e', inilalagay namin ang histogram ng grayscale na imahe sa pamamagitan ng paggamit ng command imhist ('filename') at pagpapakita nito sa isang lagay ng posisyon na 5 '. Para sa paglalagay ng histogram palagi mong kailangang i-convert ang imahe sa grayscale at pagkatapos ay makikita mo ang histogram ng graphic file na iyon.
- Ginagamit ang utos na Imfinfo ('filename with location') upang ipakita ang impormasyon tungkol sa grapikong file.
- = size ('filename') utos ay ginagamit upang ipakita ang laki at mga eroplano ng kulay ng isang partikular na graphic file.
- colormap ('spring') ay ginagamit upang baguhin ang uri ng colormap ng graphic file. Dito, sa aking code itinakda ko ang utos na ito bilang komento ngunit maaari mo itong magamit sa pamamagitan ng pag-aalis ng tanda ng porsyento. Mayroong maraming mga uri ng kulay sa MATLAB tulad ng Jet, HSV, Mainit, Cool, Tag-init, Taglagas, Taglamig, Gray, Bone, Copper, Pink, Lines at spring.
Tulad ng mga ito, maraming mga utos sa MATLAB na maaaring magamit upang maisagawa ang iba't ibang mga gawain, maaari mong suriin ang mga pagpapaandar sa pagproseso ng imahe sa MATLAB sa pamamagitan ng pagsunod sa link.
2. Pagproseso ng Imahe gamit ang MATLAB GUI
Lumilikha ng MATLAB Graphical User Interface para sa Pagpoproseso ng Imahe
Para sa pagbuo ng isang GUI (Graphical User Interface) para sa Pagproseso ng Imahe ilunsad ang GUI sa pamamagitan ng pag-type ng utos sa ibaba sa command window .
gabay
Magbubukas ang isang popup window, pagkatapos ay pumili ng bagong blangko GUI tulad ng ipinakita sa imaheng nasa ibaba,
Ngayon kailangan naming pumili ng bilang ng mga pushbutton (bawat pushbutton ay gaganap ng iba't ibang gawain) at isang axis upang maipakita ang imahe.
Upang baguhin ang laki o upang baguhin ang hugis ng Pushbutton o Axes, mag-click lamang dito at magagawa mong i-drag ang mga sulok ng pindutan. Sa pamamagitan ng pag-double click sa alinman sa mga ito magagawa mong baguhin ang kulay, string, tag at iba pang mga pagpipilian ng partikular na pindutan. Pagkatapos ng pagpapasadya magiging ganito ang hitsura
Maaari mong ipasadya ang mga pindutan ayon sa iyong pinili. Ngayon kapag na-save mo ito, nabubuo ang isang code sa window ng Editor ng MATLAB. I-edit ang nabuong code upang maitakda ang gawain para sa iba't ibang mga pushbutton. Sa ibaba ay na-edit namin ang MATLAB code.
MATLAB GUI Code para sa Pagpoproseso ng Imahe
Kumpletuhin ang MATLAB code para sa Pagpoproseso ng Imahe gamit ang MATLAB GUI, ay ibinibigay sa pagtatapos ng proyektong ito. Dagdag dito ay isinasama namin ang file na GUI (.fig) at code file (.m) dito para sa pag-download, gamit ang kung saan maaari mong ipasadya ang mga pindutan o laki ng Axes ayon sa iyong kinakailangan. Na-edit namin ang nabuong code tulad ng ipinaliwanag sa ibaba.
Sa pagpapaandar na 'uploadimage' , kopyahin at i-paste ang code sa ibaba upang maipasok ang file mula sa PC. Dito, ang command uigetfile ('uri ng extension ng imahe') ay ginagamit para sa pag-import ng imahe sa MATLAB GUI. Basahin ang file na iyon gamit ang command imread () at pagkatapos ay ipakita ito sa command imshow () sa axes1 gamit ang mga axes (handles.axes1) . Ngayon, sa command setappdata (), itago ang variable sa GUI upang ma-access ang variable sa isang bahagi ng GUI sa kabilang bahagi ng GUI.
a = uigetfile ('. jpg') a = imread (a); axes (humahawak.axes1); imshow (a); setappdata (0, 'a', a)
Ngayon, sa bawat pag-andar makikita mo ang command getappdata () na ginagamit upang makuha ang data na nakaimbak gamit ang setappdata () sa GUI.
Dito ipapaliwanag namin ang walong karaniwang ginagamit na pag-andar sa pagproseso ng imahe
S. Hindi |
Utos |
Pangalan ng Butones |
Gawain na Gawin |
1. |
uigetfile () |
Mag-upload ng Larawan |
Mag-click upang mag-import ng imahe mula sa Disk |
2. |
rgb2gray () |
RGB kay Grey |
I-click upang i-convert ang RGB na imahe sa grayscale |
3. |
im2bw () |
I-convert sa Binary Image |
I-click upang i-convert ang imahe sa binary |
4. |
- |
I-reset |
I-click upang i-reset ang imahe bilang orihinal |
5. |
imhist () |
Histogram |
Mag-click upang makita ang histogram ng imahe |
6. |
pagkukulang () |
Larawan ng Komplemento |
I-click upang suriin ang imahe ng pandagdag |
7. |
gilid (filename, pamamaraan) |
Pagtuklas ng Edge |
Mag-click upang makita ang mga gilid sa imahe |
8. |
tularan (filename, anggulo) |
Paikutin ang Clockwise |
I-click upang paikutin ang imahe sa direksyon sa direksyon ng relo |
9. |
tularan (filename, anggulo) |
Paikutin ang Anti-Clockwise |
I-click upang paikutin ang imahe sa direksyon na laban sa pakaliwa |
1. I- convert ang RGB na imahe sa grayscale
Sa pagpapaandar na 'rgb2gray' , kopyahin at i-paste ang code sa ibaba upang i- convert ang imahe ng RGB sa grayscale sa pamamagitan ng paggamit ng command rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); axes (humahawak.axes1); imshow (agray);
2. I- convert sa Binary Image
Sa pagpapaandar na 'im2bw' , kopyahin at i-paste ang code sa ibaba upang mai - convert ang imahe sa binary na imahe o maaari mong sabihin sa format ng '0' (itim) at '1' (puti) sa pamamagitan ng paggamit ng command im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); axes (humahawak.axes1); imshow (abw);
3. I-reset sa Orihinal na Imahe
Sa pagpapaandar na 'reset' , kopyahin at i-paste ang code sa ibaba upang i- reset ang na-edit na imahe sa orihinal na imahe.
a = getappdata (0, 'a'); axes (humahawak.axes1); imshow (a);
4. Histogram ng Imahe ng Plot
Sa pagpapaandar na 'histogram' , kopyahin at i-paste ang code sa ibaba upang mailagay ang histogram ng grayscale na imahe sa pamamagitan ng paggamit ng command imhist ('filename') at ipakita ito sa mga axes1 . Para sa paglalagay ng histogram palagi mong kailangang i-convert ang imahe sa grayscale at pagkatapos ay makikita mo ang histogram ng graphic file na iyon.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); axes (humahawak.axes1); imhist (ahist);
5. I- convert sa Larawan ng Komplemento
Sa pagpapaandar na 'pagkumpleto' , kopyahin at i-paste ang code sa ibaba upang makita ang pandagdag ng ipinasok na graphic file sa pamamagitan ng paggamit ng pagkukulang ng utos () .
a = getappdata (0, 'a'); pagsalakay = a; acomp = kakulangan (acomp); axes (humahawak.axes1); imshow (acomp);
6. Pagtuklas ng Edge gamit ang Canny Method
Sa pagpapaandar na 'edge' , kopyahin at i-paste ang code sa ibaba upang matukoy at makahanap ng mga gilid sa grayscale na imahe sa pamamagitan ng paggamit ng command edge ('filename', 'method') . Sa lugar ng pamamaraan maaari kang pumili kasama ng tatlong ito, Canny, Prewitt at montage . Gumagamit kami ng Canny na pamamaraan para sa pagtuklas ng gilid. Gayundin hindi mo maaaring tuklasin ang gilid nang direkta mula sa orihinal na imahe, kailangan mo munang i-convert ito sa grayscale at pagkatapos ay maaari mong makita ang mga gilid.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = edge (aedge , 'Canny') ' axes (humahawak.axes1); imshow (aedge);
7. Paikutin ang Image Clockwise
Sa pag- andar na 'pakanan sa orasan' , kopyahin at i-paste ang code sa ibaba upang paikutin ang imahe sa direksyon sa direksyon ng orasan sa pamamagitan ng paggamit ng command imrotate (filename, 'anggulo')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); axes (humahawak.axes1); imshow (aclock);
8. Paikutin ang Larawan Anti-Clockwise
Sa pagpapaandar na 'anticlockwise' , kopyahin at i-paste ang code sa ibaba upang paikutin ang imahe sa direksyon na laban sa pakaliwa sa pamamagitan ng paggamit ng command imrotate (filename, 'anggulo')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); axes (humahawak.axes1); imshow (aclock);
Patakbuhin ang MATLAB GUI code para sa Pagpoproseso ng Imahe
Ngayon, mag-click sa pindutang 'RUN' upang patakbuhin ang na-edit na code sa.m file
Ang MATLAB ay maaaring tumagal ng ilang segundo upang tumugon, huwag mag-click sa anumang mga pindutan ng GUI hanggang sa magpakita ang MATLAB ng abalang mensahe sa ibabang kaliwang sulok tulad ng ipinakita sa ibaba,
Kapag handa na ang lahat, i-import ang imahe mula sa PC sa pamamagitan ng pag-click sa pindutang 'I-upload ang Larawan'. Ngayon, magagawa mong i-convert o paikutin ang imahe sa pamamagitan ng pag-click sa anumang pindutan nang naaayon. Ipapakita sa iyo ng talahanayan sa ibaba ang gawaing ginagawa namin sa pag-click ng anumang partikular na pindutan:
Ang resulta sa pag-click ng bawat pindutan ay magbibigay ng ipinapakita sa ibaba,
Ang kumpletong pagtatrabaho ng bawat pindutan ay ipinakita sa Video sa ibaba.
Maaari mo ring gawin ang advanced na antas ng pagproseso ng imahe gamit ang Image Processing Toolbox na maaari mong bilhin mula sa opisyal na site ng MATHWORKS, ang ilan sa pagpapatakbo ng antas ng advance ay nakalista sa ibaba:
- Mga pagpapatakbo ng geometriko
- I-block ang mga operasyon
- Linear filtering at disenyo ng filter
- Nagbabago
- Pagsusuri at pagpapahusay ng imahe
- Mga pagpapatakbo ng imahe ng binary