Satura rādītājs:
- 1. darbība: galvenes faili
- 2. darbība: video uzņemšana
- 3. darbība: kadra uzņemšana un krāsas noteikšana
- 4. solis: maskēšana un ekstrakcija
- 5. solis: beidzot tiek parādīts
- 6. darbība: demonstrācija
Video: Vienkārša krāsu noteikšana, izmantojot OpenCV: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Sveiki! Šodien es parādīšu vienkāršu metodi krāsu noteikšanai no tiešraides video, izmantojot OpenCV un python.
Būtībā es tikai pārbaudīšu, vai vajadzīgā krāsa ir fona rāmī vai nav, un, izmantojot OpenCV moduļus, es maskēšu šo reģionu un vienlaikus parādīšu rāmi.
1. darbība: galvenes faili
Tagad šeit esmu izmantojis divus galvenes failus, proti, cv2 un NumPy. Būtībā cv2 ir OpenCV bibliotēka, kurā tiek ielādēti visi c ++ faili, kas ir svarīgi, vienlaikus izmantojot komandas kodos (tajā ir visas definīcijas).
Un Numpy ir pitona bibliotēka, kas ir būtiska daudzdimensiju masīva glabāšanai. Mēs izmantosim savu krāsu diapazona koordinātu saglabāšanai.
Un numpy kā np būtībā palīdz mūsu kodam nedaudz saīsināties, katru reizi lietojot np, nevis numpy.
2. darbība: video uzņemšana
Izmantojot python, tas ir diezgan vienkārši. Šeit mums vienkārši jāieslēdz video ierakstītājs, lai tas varētu sākt ierakstīt kadrus.
Tagad vērtība VideoCapture iekšpusē norāda kameru, manā gadījumā kamera ir savienota ar manu klēpjdatoru, tātad 0.
Varat izmantot līdzīgi 1 sekundārajai kamerai un tā tālāk. VideoCapture izveido tam objektu.
3. darbība: kadra uzņemšana un krāsas noteikšana
Tagad šeit mums ir jādara kaut kas, lai mēs varētu uzņemt tūlītēju video kadru, kas mums palīdzēs iegūt attēlu, un mēs varam strādāt pie tā atbilstoši prasībām.
cilpa "while" palīdzēs mums izpildīt ciklu atbilstoši mūsu prasībām. Tagad "_, frame = cap.read ()" tiek izmantots, lai pārbaudītu uzņemtā kadra derīgumu un to saglabātu. "cap.read () ir Būla mainīgais un atgriež patiesu, ja rāmis ir pareizi nolasīts un, ja jūs nesaņemat kadrus, tas nerādīs nekādas kļūdas, jūs vienkārši saņemsit Nav.
Tagad 11. un 12. līnija pamatā nosaka krāsu diapazonu, kas mums jānosaka. Šim nolūkam esmu pieradis pie zilās krāsas.
Jūs varat turpināt ar jebkuru krāsu, kas jums vienkārši jāievada šīs krāsas BGR vērtības. Labāk ir definēt divus masīvus, izmantojot numpy masīvus, jo noteiktas krāsas noteikšana reālajā pasaulē nedos mūsu mērķi, bet mēs definēsim zilās krāsas diapazonu tā, lai tas noteiktu diapazonā.
Šim nolūkam esmu definējis divus mainīgos, kas saglabā zemākās BGR vērtības un augšējās BGR vērtības.
4. solis: maskēšana un ekstrakcija
Tagad šeit ir galvenais uzdevums - maskēt rāmi un iegūt rāmja krāsu. Maskēšanai izmantoju iepriekš definētās komandas, kas atrodas OpenCV bibliotēkā. Būtībā maskēšana ir daļa no kadra daļas noņemšanas, t.i., mēs noņemsim tos pikseļus, kuru krāsas BGR vērtības neatbilst noteiktajam krāsu diapazonam, un to veic cv2.inRange. Pēc tam mēs maskējamam attēlam piemērojam krāsu diapazonu atkarībā no pikseļu vērtībām, un šim nolūkam mēs izmantosim cv2.bitwise_and, tas vienkārši piešķirs krāsas maskētajam reģionam atkarībā no maskas un krāsu diapazona vērtībām.
Cv2 saite. bitwise_and:
5. solis: beidzot tiek parādīts
Šeit es esmu izmantojis pamata cv2.imshow (), lai katru rāmi parādītu kā attēlu. Tā kā kadru dati ir saglabāti mainīgajos, es varu tos izgūt imshow (). Šeit esmu parādījis visus trīs rāmjus - oriģinālus, maskētus un krāsainus.
Tagad mums jāiziet no cikla cikla. Šim nolūkam mēs varam vienkārši ieviest cv2.wait. Key (). Būtībā tas norāda gaidīšanas laiku pirms atbildes. Tātad, ja nokārtojat 0, tas gaidīs bezgalīgi, un 0xFF norāda, ka arhitektūra ir 64 bitu. "ord ()" norāda rakstzīmi, kas, nospiežot, izpildīs pārtraukuma komandu, ja bloks, un tā iznāks no cilpas.
Tad cap.release () aizver video ierakstītāju un cv2.destroyAllWindows () aizver visus atvērtos logus.
Ja jums ir kāda problēma, lūdzu, dariet man to zināmu.
Saite uz avota kodu:
Ieteicams:
MATLAB Vienkārša sejas noteikšana: 4 soļi
MATLAB vienkārša sejas noteikšana: šīs pamācības galvenais mērķis ir parādīt, cik viegli būs attēlu apstrāde, Ar MATLAB palīdzību sejas noteikšana un izsekošana ir bijusi svarīga un aktīva pētniecības joma, tāpēc es paskaidrošu kā to var izdarīt ar
Krāsu noteikšana programmā Python, izmantojot OpenCV: 8 soļi
Krāsu noteikšana Python, izmantojot OpenCV: Sveiki! Šo pamācību izmanto, lai norādītu, kā iegūt noteiktu krāsu no attēla python, izmantojot openCV bibliotēku. Ja neesat iepazinies ar šo tehniku, neuztraucieties, šīs rokasgrāmatas beigās jūs varēsit ieprogrammēt savu krāsu
Objektu noteikšana W/ Dragonboard 410c vai 820c, izmantojot OpenCV un Tensorflow .: 4 soļi
Objektu noteikšana W/ Dragonboard 410c vai 820c, izmantojot OpenCV un Tensorflow .: Šī instrukcija apraksta, kā instalēt OpenCV, Tensorflow un mašīnmācīšanās ietvarus Python 3.5, lai palaistu objektu noteikšanas lietojumprogrammu
Vienkārša apstrāde Uldar (ultraskaņas noteikšana un diapazons): 3 soļi
Vienkārša apstrāde Uldar (ultraskaņas noteikšana un diapazons): Šis ir vienkāršs projekts, kas izmanto Arduino UNO un apstrādi, lai izveidotu vienkāršu lidaru. Lidar (saukts arī par LIDAR, LiDAR un LADAR) ir mērīšanas metode, kas mēra attālumu līdz mērķim, apgaismojot mērķis ar impulsa lāzera gaismu un mērīšanu
Krāsu noteikšana, izmantojot RGB LED: 4 soļi
Krāsu noteikšana, izmantojot RGB LED: Vai esat kādreiz vēlējies automatizētu veidu, kā noteikt objekta krāsu? Spīdot uz objekta noteiktas krāsas gaismu un aplūkojot, cik daudz gaismas tiek atstarots atpakaļ, jūs varat noteikt, kādā krāsā objekts ir. Piemēram, ja iedegas sarkana gaisma