Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pag-import ng Mga Aklatan
- Hakbang 2: Lumilikha ng Mga Track Bar
- Hakbang 3: Lumilikha ng TrackBars para sa Hue, saturation at Halaga
- Hakbang 4: Paano Basahin at baguhin ang laki ng Imahe
- Hakbang 5: Basahin ang Mga Halaga ng Bar ng Bar upang mailapat Ito sa isang Imahe
- Hakbang 6: Pagpapakita ng Imahe at Pagtatakda ng Itaas at Mas mababang Limitasyon
- Hakbang 7: Ngayon ang Pangwakas na Hakbang
- Hakbang 8: Pangwakas na Mga Output
Video: Pagtuklas ng Kulay sa Python Gamit ang OpenCV: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Kamusta! Ang itinuturo na ito ay ginagamit upang gabayan kung paano kumuha ng isang tukoy na kulay mula sa isang imahe sa sawa gamit ang openCV library. Kung ang iyong bago sa diskarteng ito pagkatapos ay huwag magalala, sa pagtatapos ng gabay na ito magagawa mong i-program ang iyong sariling programa sa pagtuklas ng kulay.
Ang sumusunod ay ang mga pagpapaandar o masasabi namin ang mga diskarte na matututunan mo, 1. Paano basahin ang isang imahe
2. Paano lumikha ng Mga Track Bar
3. Paano ayusin ang halaga ng Hue, saturation at halaga ng isang imahe gamit ang mga track bar
4. At pagkatapos ay magkakaroon ng iyong huling output
Maaari mong panoorin ang video ng output na na-attach ko sa ibaba.
Kaya't magsimula tayo
Mga gamit
- Python 3
- library ng openCV
- numpy library
Hakbang 1: Pag-import ng Mga Aklatan
Ang imahe ay dilaw na ferrari tulad ng ipinapakita at magpapoprogram kami upang makuha lamang ang kulay dilaw mula sa imaheng iyon
Ang unang hakbang ay ang pag-import ng aming mga aklatan
1. Kasama ang openCV library. Tinatawag itong cv2 sa sawa
2. Kabilang ang numpy library bilang np. Pinapayagan kami ng "as" na mag-numpy kami bilang np kaya't hindi na kailangang muling isulat ang numpy
Hakbang 2: Lumilikha ng Mga Track Bar
Ang mga Track Bar ay nilikha upang ayusin ang halaga ng Hue, saturation at Value sa isang imahe.
cv2.namedWindow ("TrackBars") Ang linya ng code na ito ay ginagamit upang lumikha ng isang bagong window ng output at ang pangalan ng window ay ibinibigay bilang TrackBars (Maaari kang magbigay ng anumang nais mong pangalan)
cv2.resizeWindow ("TrackBars", 600, 250) Ginagamit ang pagpapaandar na ito upang baguhin ang laki sa isang window. Ang "TrackBars" ay para sa kung aling window ang gusto mong baguhin ang laki dahil nais kong baguhin ang laki sa window ng TrackBars isinulat ko ang pangalang iyon. Sinusundan ng dalawang integer. Ang dalawang integer na iyon ay ang lapad at taas. Maaari mong i-play sa paligid ng dalawang mga numero upang baguhin ang laki
Hakbang 3: Lumilikha ng TrackBars para sa Hue, saturation at Halaga
Ngayon ay lilikha kami ng kabuuang 6 TrackBars para sa Hue, saturation at halaga. Ang bawat isa ay magkakaroon ng dalawa hal. 1 para sa minimum at 1 para sa maximum. Gagamitin namin ang function ng createTrackbar ng openCV. Una naming makikita ang syntax ng pagpapaandar na ito.
cv2.createTrackbar ("WINDOWNAME", "MAINWINDOWNAME", "RANGE"). Maaaring nakalilito ito ngunit huwag mag-alala madadaan namin ang bawat hakbang. Isaisip ang isang bagay na sa mga halaga ng openCV ng kulay ay 179, ang saturation ay 255 at ang halaga ay 255
1. Lumilikha ng TrackBar para sa kulay ng min:
cv2.createTrackbar ("Hue min", "TrackBars", 0, 179, walang laman)
Sa Hue min na ito ang pangalan ng trackbar, ang TrackBars ang pangunahing window, 0 ang posisyon kung saan magiging ang aming slider at 179 ang saklaw na nangangahulugang ang silder ay lilipat mula 0-179
2. Lumilikha ng TrackBar para sa max na kulay:
cv2.createTrackbar ("Hue max", "TrackBars", 179, 179, walang laman)
Sa Hue max na ito ang pangalan ng trackbar, ang TrackBars ang pangunahing window, 179 ang posisyon kung saan magiging ang aming slider at 179 ang maximum range na nangangahulugang ang silder ay lilipat mula 179-0
3. Katulad din ulitin ang mga hakbang para sa sat min, sat max, val min at val max tulad ng ipinakita sa imahe
Ang imahe na may puting background ay ang imahe ng output. Ito ang magiging hitsura ng iyong mga track bar
Hakbang 4: Paano Basahin at baguhin ang laki ng Imahe
Pinapayagan ka ng cv2.imread () na basahin ang imahe. Isang mahalagang iniisip na kailangan mong tandaan na ang lokasyon ng iyong imahe ay dapat nasa parehong folder kung saan nai-save ang programa. Ilalagay namin habang loop dahil dapat itong tumakbo hanggang sa pagbabasa ng imahe o maaari nating sabihin hanggang sa totoo ang kundisyon
img = cv2.imread ("ferrari.jpg")
- Sa ito ay lumikha ako ng isang variable na pangalan na "img" kung saan itinatago ko ang imahe
- Sa loob ng cv2.imread isulat ang pangalan ng imahe na may extension sa loob ng dobleng quote
Upang baguhin ang laki ng isang imahe gagamitin namin ang function na cv2.resize. Ang bahaging ito ay opsyonal, kung nais mong baguhin ang laki pagkatapos ay maaari mong gamitin ang pagpapaandar na ito
Sa loob ng cv2.resize unang isulat ang variable na pangalan kung saan nakaimbak ang imahe at pagkatapos ang lapad at taas nito
Hakbang 5: Basahin ang Mga Halaga ng Bar ng Bar upang mailapat Ito sa isang Imahe
Ok kaya ngayon babasahin namin ang mga halaga ng trackbar bar upang mailapat namin ito sa aming imahe. Makukuha namin ang mga halaga gamit ang function na cv2.getTrackbarPos ().
Magsimula tayo sa bahaging iyon …
h_min = cv2.getTrackbarPos ("Hue min", "TrackBars")
Sa pahayag sa itaas ay lumilikha ako ng isang variable na pangalan na h_min kung saan iimbak ko ang halaga ng Hue min. Kaya sa loob ng cv2.getTrackbarPos 1st argument ay magiging "Hue min" dahil gusto ko ng mga halagang hue min (Ang spelling ay dapat na eksaktong kapareho ng ito ay ang pag-andar ng createTrackbar) at ang ika-2 na argumento ang magiging pangalan ng window ng trackbar na kinabibilangan nito.
- Ulitin ang parehong proseso para sa h_max at natitirang mga pagpapaandar tulad ng ipinakita sa imahe sa itaas at pagkatapos ay i-print ang lahat ng mga halaga gamit ang print ()
- Ang output ay ipinapakita sa pangalawang imahe. Ito ay pag-print ng mga halaga ng h_min, h_max, s_min, s_max, v_min, s_max
Hakbang 6: Pagpapakita ng Imahe at Pagtatakda ng Itaas at Mas mababang Limitasyon
Ngayon mayroon kaming min at max na halaga ng kulay, saturation at halaga na gagamitin namin ang halagang ito upang i-filter ang imahe upang maaari naming ang partikular na output ng kulay ng isang imahe.
Lilikha kami ng isang mask para sa paggamit ng cv2.inRange function. At bago ito ay itatakda namin ang itaas at mas mababang limitasyon ng kulay, saturation at halaga
Kaya lumikha ng isang variable na pangalan na "mas mababa" at gamit ang pag-andar ng numpy array itakda ang saklaw ng min para sa lahat ng 3 tulad ng sumusunod
mas mababa = np.array ([h_min, s_min, v_min])
Ulitin ang parehong hakbang para sa itaas
itaas = np.array ([h_max, s_max, v_max])
Ngayon ay lilikha kami ng isang mask bilang sumusunod
mask = cv2.inRange (baguhin ang laki, mas mababa, itaas) Sa loob ng cv2.inRang ang ika-1 na argumento ay ang variable na kung saan naka-imbak ang aking huling imahe, ang ika-2 na argumento ay magiging mas mababang limitasyon at ang ika-3 na argumento ay magiging mas mataas na limitasyon.
Ngayon ay ipapakita namin ang pangunahing imahe at mask. Upang ipakita gagamitin namin ang function na cv2.imshow ()
cv2.imshow ("img", baguhin ang laki) Ito ay upang ipakita ang pangunahing imahe. Ang 1st argument ay ang pangalan ng window na maaari mong ibigay ang anumang pangalan na gusto mo at ang 2nd argument ay variable kung saan naka-imbak ang aking pangunahing imahe na nais mong ipakita.
Gayundin ulitin ang mga hakbang para sa mask
cv2.imshow ("Output", mask)
Hakbang 7: Ngayon ang Pangwakas na Hakbang
Sa huling hakbang na ito ay kukuha kami ng kulay ng kotse at ipakita.
Lumikha ako ng isang resulta ng variable na pangalan. Muli maaari kang magbigay ng anumang pangalan na gusto mo. Sa gayon gagamitin namin ang function na cv2.bitwise_and () kung saan magdaragdag kami sa mga imahe nang magkasama at lumikha ng isang bagong imahe. At saanman naroroon ang mga pixel sa parehong imahe ay tatagal iyon bilang oo o "1".
resulta = cv2.bitwise_and (baguhin ang laki, baguhin ang laki, mask = mask)
- Sa ito ang ika-1 na argumento ang magiging imahe namin
- Ang ika-2 argument ay magiging aming orihinal na imahe ngunit sinusundan ng mask na inilapat na nilikha namin dati
- At sa wakas ipakita lamang ang resulta gamit ang imshow function
Kopyahin lamang i-paste ang huling hakbang na ito ay isang pagkaantala lamang at maaari kang lumabas sa window ng output sa pamamagitan ng pagpindot sa "a" sa keyboard
Hakbang 8: Pangwakas na Mga Output
Inirerekumendang:
Pagpoproseso ng Imahe Gamit ang Raspberry Pi: Pag-install ng OpenCV at Paghihiwalay ng Kulay ng Imahe: 4 na Hakbang
Pagpoproseso ng Imahe Gamit ang Raspberry Pi: Pag-install ng OpenCV at Paghihiwalay ng Kulay ng Imahe: Ang post na ito ay ang una sa maraming mga tutorial sa pagproseso ng imahe na susundan. Masusing pagtingin namin sa mga pixel na bumubuo ng isang imahe, matutunan kung paano i-install ang OpenCV sa Raspberry Pi at nagsusulat din kami ng mga script ng pagsubok upang makuha ang isang imahe at c
Simpleng Pagtuklas ng Kulay Gamit ang OpenCV: 6 na Hakbang
Simpleng Pagtuklas ng Kulay Gamit ang OpenCV: Kumusta! Ngayon ay magpapakita ako ng isang simpleng pamamaraan ng pagtuklas ng isang kulay mula sa isang live na video gamit ang OpenCV at python. Karaniwan ay susubukan ko lamang ang kinakailangang kulay na naroroon sa background frame o hindi at gamit ang mga modyul ng OpenCV i-mask ko ang rehiyon na iyon at
Pagtuklas ng Bagay W / Dragonboard 410c o 820c Gamit ang OpenCV at Tensorflow .: 4 na Hakbang
Pagtuklas ng Bagay W / Dragonboard 410c o 820c Paggamit ng OpenCV at Tensorflow .: Inilalarawan ng mga itinuturo na ito kung paano i-install ang OpenCV, Tensorflow, at mga framework ng pag-aaral ng machine para sa Python 3.5 upang patakbuhin ang application ng Pagtuklas ng Bagay
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85: 3 Mga Hakbang
Baguhin ang Mga Kulay ng LED Gamit ang isang POT at ATTINY85: Sa proyektong ito gumagamit kami ng potentiometer (POT) upang baguhin ang mga kulay sa isang LED gamit ang isang ATTINY85. Ang ilang mga kahulugan - Ang potensyomiter ay isang aparato na may isang maliit na mekanismo ng turnilyo / pagikot na kung saan ay nagbubunga ng iba't ibang mga de-koryenteng resistensya. Ikaw ay
Pagtuklas ng Kulay Gamit ang RGB LED: 4 Hakbang
Pagtuklas ng Kulay Gamit ang RGB LED: Nais mo na bang isang awtomatikong paraan upang makita ang kulay ng isang bagay? Sa pamamagitan ng nagniningning na ilaw ng isang tiyak na kulay sa bagay at pagtingin sa kung gaanong ilaw ang makikita, maaari mong sabihin kung ano ang kulay ng bagay. Halimbawa, kung sumasalamin ka ng isang pulang ilaw o