Tartalomjegyzék:
- 1. lépés: A fejlécfájlok
- 2. lépés: A videó rögzítése
- 3. lépés: A kép rögzítése és a szín meghatározása
- 4. lépés: Maszkolás és kivonás
- 5. lépés: Végül megjelenik
- 6. lépés: Demo
Videó: Egyszerű színfelismerés az OpenCV használatával: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Szia! Ma egy egyszerű módszert mutatok be egy szín észlelésére élő videóból OpenCV és python segítségével.
Alapvetően csak azt fogom tesztelni, hogy a kívánt szín jelen van -e a háttérkeretben, vagy sem, és az OpenCV modulok használatával elfedem ezt a régiót, és egyidejűleg megjelenítem a keretet.
1. lépés: A fejlécfájlok
Most itt két fejlécfájlt használtam, nevezetesen a cv2 és a NumPy. Alapvetően a cv2 az OpenCV könyvtár, amely betölti az összes c ++ fájlt, amelyek fontosak a kódokban lévő parancsok használata közben (tartalmazza az összes definíciót).
A Numpy pedig egy python -könyvtár, amely elengedhetetlen a többdimenziós tömb tárolásához. A színtartomány koordinátáinak tárolására használjuk.
A numpy as np pedig alapvetően segít a kódunknak, hogy kicsit lerövidüljön, ha minden alkalommal np -t használunk a numpy helyett.
2. lépés: A videó rögzítése
Ez nagyon egyszerű python használata közben. Itt csak be kell kapcsolnunk a videofelvevőt, hogy elkezdhesse rögzíteni a képkockákat.
Most a VideoCapture -n belüli érték jelzi a kamerát, az én esetemben a kamera csatlakozik a laptopomhoz, tehát 0.
Hasonlóan léphet az 1 -hez a másodlagos fényképezőgéphez és így tovább. A VideoCapture létrehozza az objektumot.
3. lépés: A kép rögzítése és a szín meghatározása
Most itt tennünk kell valamit, hogy rögzíthessük a videó azonnali képkockáját, amely segít a kép kibontásában, és ezen dolgozhatunk a követelményeknek megfelelően.
A "while" ciklus segít abban, hogy a ciklust a kívánt időre futtassuk. Most a "_, frame = cap.read ()" a lefoglalt keret érvényességének ellenőrzésére és tárolására szolgál. "A cap.read () egy logikai változó, és igaz értéket ad vissza, ha a keretet helyesen olvassuk, és ha nem kap kereteket, akkor nem fog semmilyen hibát megjeleníteni, egyszerűen a None értéket kapja.
Most a 11. sor és a 12. sor alapvetően meghatározza azt a színtartományt, amelyet észlelnünk kell. Ehhez szoktam a kék színt.
Bármilyen színnel folytathatja, ha csak be kell írnia a BGR értékeket az adott színhez. Jobb, ha két tömböt definiáló tömbökkel határozunk meg, mivel egy adott szín észlelése a valós világban nem szolgálja a célunkat, inkább a kék szín tartományát határozzuk meg, hogy a tartományon belül érzékelje.
Ehhez két változót definiáltam, amelyek az alsó BGR értékeket és a felső BGR értékeket tárolják.
4. lépés: Maszkolás és kivonás
Most itt a fő feladat a keret elfedése és a keret színének kinyerése. A maszkoláshoz az OpenCV könyvtárában található előre meghatározott parancsokat használtam. Alapvetően a maszkolás a keret bizonyos részének eltávolítása, azaz eltávolítjuk azokat a képpontokat, amelyek színének BGR értékei nem a megadott színtartományban vannak, és ezt a cv2.inRange végzi. Ezt követően a színtartományt a maszkolt képre alkalmazzuk, a pixelértékektől függően, és ehhez a cv2.bitwise_and értéket fogjuk használni, egyszerűen hozzárendeli a színeket a maszkolt területhez, a maszk és a színtartomány értékeitől függően.
Link a cv2 -hez. bitwise_and:
5. lépés: Végül megjelenik
Itt az alapvető cv2.imshow () - t használtam az egyes keretek képként való megjelenítéséhez. Mivel a keretadatok változókban vannak tárolva, le tudom őket szerezni az imshow () fájlban. Itt megjelenítettem mind a három keretet, eredeti, maszkos és színes.
Most ki kell lépnünk a while ciklusból. Ehhez egyszerűen megvalósíthatjuk a cv2.wait. Key () parancsot. Alapvetően a várakozási időt jelzi, mielőtt válaszol. Tehát ha átadja a 0 -t, akkor végtelenül várni fog, és a 0xFF azt mondja, hogy az architektúra 64 bites. Az "ord ()" megadja azt a karaktert, amelyet megnyomáskor a break parancs végrehajtja az if blokkban, és az kilép a ciklusból.
Ezután a cap.release () bezárja a videofelvevőt, a cv2.destroyAllWindows () pedig az összes megnyitott ablakot.
Ha bármilyen problémája van, kérjük, tudassa velem.
Link a forráskódhoz:
Ajánlott:
Mobil vezérelt Bluetooth autó -- Egyszerű -- Egyszerű -- Hc-05 -- Motorpajzs: 10 lépés (képekkel)
Mobil vezérelt Bluetooth autó || Egyszerű || Egyszerű || Hc-05 || Motorpajzs: … Kérem, Iratkozzon fel YouTube-csatornámra ………. Ez a Bluetooth-vezérlésű autó, amely HC-05 Bluetooth modult használt a mobiltelefonnal való kommunikációhoz. Bluetooth -on keresztül irányíthatjuk az autót mobiltelefonnal. Van egy alkalmazás az autó mozgásának szabályozására
Színfelismerés W/ TCS230 érzékelővel és Arduino -val [kalibrációs kód mellékelve]: 12 lépés
Színfelismerés W/ TCS230 érzékelővel és Arduino -val [Kalibrációs kód mellékelve]: Áttekintés Ebben az oktatóanyagban megismerheti a TCS230 érzékelőt és annak használatát az Arduino -val a színek felismeréséhez. Ennek az oktatóanyagnak a végén talál egy lenyűgöző ötletet egy színválasztó toll létrehozásához. Ezzel a tollal beolvashatja a színeket
Egyszerű és egyszerű Pókember Web-Shooter: 12 lépés
Egyszerű és egyszerű Pókember Web-Shooter: Láttál Pókember-filmet? Pókember-képregény? Bármi, ami homályosan Pókemberhez kapcsolódik? A Pókember látszólag mindenhol ott van. Miért nem készít egy egyszerű web-shooter-t? Kis gyakorlás után a ház anyagaiból létrehoztam egy dizájnt, amely létrehozható
Egyszerű, egyszerű házi feladatgép: 4 lépés (képekkel)
Egyszerű, egyszerű házi feladat: Ez a gép olcsó anyagokból készült, és nem haladja meg a 7 dollárt. Ennek felépítéséhez türelemre és 2 órára van szüksége. És ismernie kell a forrasztást és a huzalozást, mivel ez kis áramkört foglal magában. Ha megépült, csak csatlakoztassa
Egy igazán egyszerű/egyszerű/nem bonyolult módja annak, hogy az emberek/emberek/állatok/robotok úgy nézzenek ki, mintha valóban hűvös/fényes hőlátásuk lenne (az Ön által választott szín) GIMP használatával: 4 lépés
Egy igazán egyszerű/egyszerű/nem bonyolult módszer arra, hogy az emberek/emberek/állatok/robotok úgy nézzenek ki, mintha valóban hűvös/fényes hőlátásuk lenne (az Ön által választott szín) GIMP használatával: Olvassa el … a … címet