![OpenCV Basic Projects: 5 lépés OpenCV Basic Projects: 5 lépés](https://i.howwhatproduce.com/images/007/image-18326-j.webp)
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47
![OpenCV Basic projektek OpenCV Basic projektek](https://i.howwhatproduce.com/images/007/image-18326-1-j.webp)
Ebben a projektben az OpenCV alapvető funkcióit vizsgáljuk meg 4 egyszerű projekten keresztül, amelyekben élő videofolyam szerepel. Ezek az arcfelismerés, a háttér eltávolítása, az élek különleges vizuális megjelenítése és az elmosódott effektus alkalmazása az élő videófolyamban. Ezeknek a projekteknek a kipróbálásának fő célja az volt, hogy egyszerűen nedvesítsem a lábam az OpenCV interfésszel, mivel azt tervezem, hogy elmélyedek a számítógépes látás területén
Kellékek
- Python futtató számítógép
- Nyissa meg a CV könyvtárat, a Numpy könyvtárat, a tkinter könyvtárat, a sys könyvtárat
- Fényképezőgép a számítógéphez való csatlakozáshoz (ha a számítógép még nem tartalmaz ilyet)
- A program python fájlja (ez az utasítás tartalmazza)
- haarcascade xml fájl (ez az utasítás tartalmazza)
1. lépés: FaceDetect funkció
![FaceDetect funkció FaceDetect funkció](https://i.howwhatproduce.com/images/007/image-18326-2-j.webp)
![FaceDetect funkció FaceDetect funkció](https://i.howwhatproduce.com/images/007/image-18326-3-j.webp)
Ez a funkció a fényképezőgép videóját zöld négyzetekkel jeleníti meg minden felvételen. A kódban a cv2. VideoCapture () függvényt használjuk az általunk rögzített videó "capture" nevű objektumban való tárolására. A CAPTURE_INDEX a számítógép által beállított szám, amely megfelel a számítógép videobemeneti listájában szereplő fényképezőgép indexének. Ha nincs külső kamera csatlakoztatva a számítógéphez, akkor a 0 -nak vagy az 1 -nek kell működnie.
A face_cascade objektum inicializálása a cascadeClassifier függvény és az OpenCV githubban található "haarcascade_frontalface_default.xml" fájl segítségével történik. Ezzel az objektummal tároljuk a listában "arcok" -ban észlelt arcokat, mint egy négyirányú sorszámú bejegyzést, amely tartalmazza az arcokat x koordináta, y koordináta, szélesség és magasság. Ezután rajzolunk egy téglalapot, amely tökéletesen körülveszi az arcot a cv2.rectangle függvény használatával
Ebből a videóból az OpenCV sok képet rögzít a mi ciklusunkban a capture.read () használatával, és a képet egy "img" nevű keretben tárolja. Ezután minden képet a kívánt módon értelmezünk és módosítunk. A faceDetect esetében a képet szürkére tesszük a cvtColor függvény használatával, amely az első paraméterben megadott képet átalakítja a második paraméterben meghatározott típusú képszínre. A második paraméter elfogadható értékeinek listája megtalálható az interneten. Ezután megjelenítjük a képet az "Arc felismerése" nevű ablakban az imshow () függvény használatával, amely karakterláncot vesz fel az ablak nevére és a megjelenítendő képkeretre.
Végül várjuk, hogy a felhasználó írja be a q gombot a cv2.waitKey () függvénnyel. A 0xFF maszkot konvencióként használják 64 bites számítógépeken. Miután a felhasználó befejezte a videófolyamot, a faceDetect funkció felszabadítja a rögzítési objektumot, majd megsemmisíti az OpenCV interfész alatt megnyitott összes ablakot. Az összes többi funkció hasonló tervezési struktúrát követ.
2. lépés: BackgroundRemove függvény
![BackgroundRemove függvény BackgroundRemove függvény](https://i.howwhatproduce.com/images/007/image-18326-4-j.webp)
![BackgroundRemove függvény BackgroundRemove függvény](https://i.howwhatproduce.com/images/007/image-18326-5-j.webp)
Ez a funkció megpróbálja eltávolítani videónk háttérrészét, és csak az előtérképet hagyja meg. Előfordulhat, hogy egyes fényképezőgépeken nem működik, mivel olyan világítási beállítást alkalmaznak, amely akkor aktiválódik, amikor különböző tárgyak/ fókuszok lépnek be a keretbe. Ha a backgroundRemove funkciója nem működik, ne aggódjon- ez csak a fényképezőgép lehet!
A funkció használatához lépjen el a kamera keretétől, és nyomja meg a "d" gombot a háttérkép rögzítéséhez. Fontos, hogy ne legyen mozgó tárgy a háttérben, amelyet rögzíteni szeretne. Ezután visszamehetünk a kamera keretébe. Ha a funkció működött, a felhasználó csak saját magát láthatja a funkció video -adatfolyamán. Bármilyen zaj/fekete folt az előtérben a fényképezőgép megvilágításának beállítása miatt következhet be. Egy másik háttér rögzítéséhez nyomja meg az "r" gombot az újraindításhoz, majd nyomja meg ismét a "d" gombot.
Ennek a funkciónak néhány kulcsfontosságú eszköze a "flag" logikai érték használata, amely akkor jelenik meg, amikor a felhasználó megnyomja a d gombot. Ez rögzíti a hátteret, és lehetővé teszi, hogy eltávolítsuk azt a funkció által közvetített videóból. Célunk, hogy a háttérképet a ref_img fájlban tároljuk, hogy meg tudjuk különböztetni azt az előtérképtől, amely bármilyen mozgó tárgyat rögzít. A cv2.subtract () függvénnyel kivonjuk az előföldi képet a háttérképből, és fordítva, majd azonnal töröljük a két kép minden apró eltérését. A háttér elsötétült.
Az fgmask a két kép közötti különbség felhasználásával készül, majd az OpenCV cv2.bitwise_and () függvényével alkalmazzák a függvények videófolyamára.
3. lépés: VideoEdges funkció
![VideoEdges funkció VideoEdges funkció](https://i.howwhatproduce.com/images/007/image-18326-6-j.webp)
![VideoEdges funkció VideoEdges funkció](https://i.howwhatproduce.com/images/007/image-18326-7-j.webp)
Ez a funkció visszaadja az élő videó streamünket, de az észlelhető élek fehérek, míg minden más el van sötétítve. Ami megkülönbözteti ezt a funkciót a többi funkciótól, az az, hogy eredeti videónkat RBG formátumból HSV-vé alakítottuk át, amely a színárnyalatot, a telítettséget és a variációt jelenti- egy másik módszer a fény és a szín feldolgozására a videótól. Ezzel a módszerrel könnyebben meg tudjuk különböztetni a videó körvonalait egy szűrő alkalmazásával (red_low to red_high).
A Canny Edge Detection a kép éleinek észlelésére szolgál. Szürkeárnyalatos képet fogad be bemenetként, és többlépcsős algoritmust használ.
4. lépés: VideoBlur funkció
![VideoBlur funkció VideoBlur funkció](https://i.howwhatproduce.com/images/007/image-18326-8-j.webp)
![VideoBlur funkció VideoBlur funkció](https://i.howwhatproduce.com/images/007/image-18326-9-j.webp)
Ezzel a funkcióval elmosódó hatást adhatunk a videófolyamunkhoz. Az egyszerű függvény a keretünk GaussianBlur cv2 függvényét hívja meg. További információk a gaussianBlur funkcióról itt találhatók:
opencv-python-tutroals.readthedocs.io/en/l…
5. lépés: Javítások
Ebben a projektben a legérzékenyebb funkció a háttér eltávolítása, mivel olyan fényképezőgép használatát igényli, amely nem rendelkezik világítás -beállítási funkcióval. Lehet, hogy az OpenCV könyvtáron belül van egy jobb funkciókészlet, amely figyelembe veszi ezt a megvilágítást és simán eltávolítja a hátteret (hasonlóan a zöld képernyőhöz).
Használhatnánk más arcfelismerési funkciókat is, amelyek az (x, y) koordinátákon kívül több funkcióval rendelkező objektumokat is előállíthatnak. Talán egy arcfelismerő programot, amely képes emlékezni az arcokra, nem lenne túl nehéz megvalósítani.
Az elmosódási funkció személyre szabható a felhasználó intuitív vezérlésével. Például a felhasználó beállíthatja az elmosódási hatás intenzitását, vagy kiválaszthat egy bizonyos területet a keretben az elmosódáshoz.
Ajánlott:
Kézi BASIC számítógép: 6 lépés (képekkel)
![Kézi BASIC számítógép: 6 lépés (képekkel) Kézi BASIC számítógép: 6 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-112-j.webp)
Kézi BASIC számítógép: Ez az utasítás leírja a BASIC -t futtató kis kézi számítógép építésének folyamatát. A számítógép az ATmega 1284P AVR chip köré épült, amely a számítógép buta nevét is inspirálta (HAL 1284). Ezt a konstrukciót HEAVILY ihlette
Telepresence Robot: Basic Platform (1. rész): 23 lépés (képekkel)
![Telepresence Robot: Basic Platform (1. rész): 23 lépés (képekkel) Telepresence Robot: Basic Platform (1. rész): 23 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-2616-94-j.webp)
Telepresence Robot: Basic Platform (1. rész): A telepresence robot olyan típusú robot, amely távolról vezérelhető az interneten keresztül, és helyettesítőként működik valahol máshol. Például, ha New Yorkban tartózkodik, de szeretne fizikailag kapcsolatba lépni egy kaliforniai embercsoporttal
Arduino Bluetooth Basic bemutató: 6 lépés (képekkel)
![Arduino Bluetooth Basic bemutató: 6 lépés (képekkel) Arduino Bluetooth Basic bemutató: 6 lépés (képekkel)](https://i.howwhatproduce.com/images/004/image-9932-j.webp)
Arduino Bluetooth Basic Tutorial: FRISSÍTÉS: A CIKK FRISSÍTETT VÁLTOZATA ITT TALÁLHATÓ. Gondolt arra, hogy bármilyen elektronikus eszközt vezérelhet okostelefonjával? A robot vagy bármely más eszköz vezérlése okostelefonnal nagyon jó lesz. Íme egy egyszerű és alapos
Sonoff Basic Wifi bővítő - MQTT szárazérintkező relé - 5v DC alacsony feszültség: 6 lépés
![Sonoff Basic Wifi bővítő - MQTT szárazérintkező relé - 5v DC alacsony feszültség: 6 lépés Sonoff Basic Wifi bővítő - MQTT szárazérintkező relé - 5v DC alacsony feszültség: 6 lépés](https://i.howwhatproduce.com/images/006/image-17948-j.webp)
Sonoff Basic Wifi bővítő - MQTT szárazérintkező relé - 5 V egyenáramú alacsony feszültség: Ok Volt néhány első generációs Sonoff alapkészülékem, és nem szeretném 220 V -al használni őket, mivel még nem voltak biztonságban. Már egy ideje feküdtek, és vártak, hogy tegyenek velük valamit. Így hát a martin-gerbe botlottam
Power Projects számítógépről: 5 lépés
![Power Projects számítógépről: 5 lépés Power Projects számítógépről: 5 lépés](https://i.howwhatproduce.com/images/002/image-3598-80-j.webp)
Erőprojektek a számítógépről: Néhány olyan részt, amely valószínűleg benne van, egy kábelbe verheti, amely lehetővé teszi az elektronikus projektek számítógépről történő áramellátását. Kezdetben ezt a cikket az uC Hobby webhelyén tettem, de úgy gondoltam, megpróbálom mint az első utasítható. Tudasd velem