Përmbajtje:
- Furnizimet
- Hapi 1: Funksioni FaceDetect
- Hapi 2: Funksioni BackgroundRemove
- Hapi 3: Funksioni VideoEdges
- Hapi 4: Funksioni VideoBlur
- Hapi 5: Përmirësimet
Video: Projektet Bazë të OpenCV: 5 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:13
Në këtë projekt, ne eksplorojmë disa funksione themelore OpenCV përmes 4 projekteve të thjeshta që përfshijnë një transmetim të drejtpërdrejtë të videos. Këto janë njohja e fytyrës, heqja e sfondit, paraqitja e veçantë vizuale e skajeve dhe aplikimi i një efekti të turbullt në transmetimin e drejtpërdrejtë të videos. Qëllimi im kryesor për të provuar këto projekte ishte thjesht të lagja këmbët me ndërfaqen OpenCV, pasi kam në plan të thellohem më shumë në fushën e vizionit kompjuterik
Furnizimet
- Kompjuteri që funksionon Python
- Biblioteka e hapur CV, biblioteka Numpy, biblioteka tkinter, biblioteka sys
- Kamera për t'u lidhur me kompjuterin (nëse kompjuteri nuk e përfshin atë tashmë)
- Skedari python i programit (i përfshirë në këtë udhëzues)
- haarcascade xml file (e përfshirë në këtë udhëzues)
Hapi 1: Funksioni FaceDetect
Ky funksion tregon videon e kamerës tuaj me katrorë të gjelbër në çdo faqe që ajo merr. Në kod, ne përdorim funksionin cv2. VideoCapture () për të ruajtur videon që po kapim në një objekt të quajtur "kapje". CAPTURE_INDEX është një numër i vendosur nga kompjuteri juaj që korrespondon me indeksin e kamerës suaj në listën e hyrjes së videove të kompjuterit. Nëse nuk keni një aparat të jashtëm të lidhur me kompjuterin tuaj, 0 ose 1 duhet të funksionojë.
Objekti face_cascade inicializohet duke përdorur funksionin cascadeClassifier dhe skedarin "haarcascade_frontalface_default.xml" që gjendet në githubin OpenCV. Ne e përdorim këtë objekt për të ruajtur fytyrat e zbuluara në listën "fytyra" si një hyrje me katër drejtime që mban fytyrat x koordinatë, koordinatë y, gjerësi dhe lartësi. Pastaj vizatojmë një drejtkëndësh që mbyll në mënyrë perfekte fytyrën duke përdorur funksionin cv2.rectangle
Nga kjo video, OpenCV kap shumë imazhe në lakin tonë duke përdorur capture.read () dhe ruajtjen e imazhit në një kornizë që ne e quajtëm "img". Çdo imazh më pas interpretohet dhe modifikohet sipas dëshirës. Për faceDetect, ne e bëjmë imazhin gri duke përdorur funksionin cvtColor që konverton çdo imazh që jepet në parametrin e parë në një lloj të veçantë të ngjyrës së figurës të specifikuar në parametrin e dytë. Lista e vlerave të pranueshme për parametrin e dytë mund të gjendet në internet. Ne pastaj shfaqim imazhin në një dritare të quajtur "Zbulimi i fytyrës" duke përdorur funksionin imshow () që merr një varg për emrin e dritares dhe kornizën e imazhit që do të shfaqet.
Më në fund presim që përdoruesi të fusë çelësin q duke përdorur funksionin cv2.waitKey (). Maska 0xFF përdoret si një konventë për kompjuterët 64 bit. Pasi përdoruesi të ketë përfunduar transmetimin e videos, funksioni faceDetect çliron objektin e kapjes dhe pastaj shkatërron çdo dritare tjetër të hapur nën ndërfaqen OpenCV. Të gjitha funksionet e tjera ndjekin një strukturë të ngjashme të projektimit.
Hapi 2: Funksioni BackgroundRemove
Ky funksion përpiqet të heqë pjesën e sfondit të videos sonë dhe të lërë vetëm imazhin e parë. Mund të mos funksionojë në disa kamera, pasi ato përdorin një funksion të rregullimit të ndriçimit që aktivizohet kur objekte/ vatra të ndryshme hyjnë në kornizë. Nëse funksioni juaj backgroundRemove nuk funksionon, mos u shqetësoni- mund të jetë thjesht kamera juaj!
Për të përdorur këtë funksion, largohuni nga korniza e kamerës dhe shtypni butonin "d" për të kapur imazhin e sfondit. Shtë e rëndësishme që të mos ketë objekte lëvizëse në sfondin që dëshironi të kapni. Pastaj, ne mund të kthehemi përsëri në kornizën e kamerës. Nëse funksioni funksionoi, përdoruesi duhet ta shohë veten vetëm në transmetimin e videos të funksionit. Çdo zhurmë/njolla të zeza në imazhin e parë mund të jetë rezultat i rregullimit të ndriçimit të kamerës. Për të kapur një sfond tjetër, shtypni butonin "r" për të rifilluar, pastaj shtypni përsëri "d".
Disa marrje kryesore të këtij funksioni është përdorimi i "flamurit" boolean që ngrihet sapo përdoruesi të shtypë butonin d. Kjo kap sfondin dhe na lejon ta heqim atë nga videoja që transmetohet nga funksioni. Ne synojmë të ruajmë imazhin e sfondit në ref_img në mënyrë që ta dallojmë atë nga imazhi i parë, i cili kap çdo objekt në lëvizje. Ne përdorim funksionin cv2.subtract () për të hequr imazhin e terrenit nga imazhi i sfondit dhe anasjelltas, pastaj anulojmë çdo ndryshim të vogël në dy imazhet menjëherë pas. Sfondi është nxirë.
Maska fg është bërë duke përdorur ndryshimin midis këtyre dy imazheve dhe më pas aplikohet në funksionet e transmetimit të videos duke përdorur funksionin OpenCV cv2.bitwise_and ().
Hapi 3: Funksioni VideoEdges
Ky funksion kthen një transmetim të drejtpërdrejtë të videos, por skajet e zbulueshme bëhen të bardha ndërsa gjithçka tjetër është errësuar. Ajo që e dallon këtë funksion nga funksionet e tjera është shndërrimi i videos sonë origjinale nga formati RBG në HSV, që nënkupton ngjyrimin, ngopjen dhe ndryshimin- një metodë e ndryshme e përpunimit të dritës dhe ngjyrës nga një video. Me këtë metodë, ne mund të dallojmë më lehtë skicat në video duke aplikuar një filtër (nga i kuq në të kuqe i lartë).
Canny Edge Detection përdoret për të zbuluar skajet në një imazh. Ai pranon një imazh të shkallës gri si hyrje dhe përdor një algoritëm me shumë faza.
Hapi 4: Funksioni VideoBlur
Ky funksion përdoret për të shtuar një efekt mjegullimi në transmetimin tonë të videos. Funksioni i thjeshtë thërret funksionin GaussianBlur cv2 në kornizën tonë. Informacione të mëtejshme mbi funksionin gaussianBlur mund të gjenden këtu:
opencv-python-tutroals.readthedocs.io/en/l…
Hapi 5: Përmirësimet
Funksioni më i ndjeshëm në këtë projekt është funksioni i heqjes së sfondit, pasi kërkon përdorimin e një kamere që nuk ka funksion të rregullimit të ndriçimit. Mund të ketë një grup më të mirë të funksioneve brenda bibliotekës OpenCV që mund të llogaritin këtë rregullim ndriçimi dhe të heqin pa probleme sfondin (i ngjashëm me një ekran të gjelbër).
Ne gjithashtu mund të përdorim funksione të tjera të zbulimit të fytyrës që mund të prodhojnë objekte me më shumë funksionalitete sesa thjesht kthimin (x, y) koordinatat. Ndoshta një program i njohjes së fytyrës me aftësinë për të kujtuar fytyrat nuk do të ishte shumë i vështirë për t'u zbatuar.
Funksioni i turbullimit mund të personalizohet më shumë nëpërmjet kontrollit intuitiv nga përdoruesi. Për shembull, përdoruesi mund të dëshirojë të rregullojë intensitetin e efektit të turbullimit ose të zgjedhë një zonë të caktuar brenda kornizës për tu mjegulluar.
Recommended:
Top 3 Projektet Elektronike të Tërheqshme Duke Përdorur Transistorin D-882: 9 Hapa
Top 3 Projekti Elektronik i Tërheqshëm Duke Përdorur Transistorin D-882: JLCPCB është ndërmarrja më e madhe prototip PCB në Kinë dhe një prodhues i teknologjisë së lartë i specializuar në prototipin e shpejtë të PCB-ve dhe prodhimin e PCB-ve në grupe të vogla, me mbi 10 vjet përvojë në prodhimin e PCB-ve. Ata janë në gjendje të japin zgjidhje me kosto efektive
Si të bëni RADAR duke përdorur Arduino për Projektin e Shkencës - Projektet më të mira Arduino: 5 hapa
Si të bëni RADAR duke përdorur Arduino për Projektin e Shkencës | Projektet më të mira Arduino: Përshëndetje miq, në këtë udhëzues do t'ju tregoj se si të bëni një sistem radar të mahnitshëm të ndërtuar duke përdorur arduino nano, ky projekt është ideal për projektet shkencore dhe ju lehtë mund ta bëni këtë me shumë më pak investime dhe shanse nëse fitimi i çmimit është i madh
Merrni njoftime me email nga projektet tuaja IoT: 6 hapa
Merrni njoftime me email nga projektet tuaja IoT: Njoftimet me email të programit që lidhin projektet tuaja IoT me Adafruit IO dhe IFTTT. Unë kam publikuar disa projekte IoT. Shpresoj se i keni parë, nëse jo, ju ftoj në profilin tim dhe i kontrolloj. Doja të merrja disa njoftime kur një ndryshore
Termometër infra të kuqe pa kontakt me bazë Arduino - Termometri me bazë IR duke përdorur Arduino: 4 hapa
Termometër infra të kuqe pa kontakt me bazë Arduino | Termometri i bazuar në IR duke përdorur Arduino: Përshëndetje djema në këtë udhëzues ne do të bëjmë një termometër pa kontakt duke përdorur arduino. Meqenëse ndonjëherë temperatura e lëngut/ngurtës është shumë e lartë ose shumë e ulët dhe pastaj është e vështirë të kontaktosh me të dhe të lexosh temperatura atëherë në atë skenë
Riparimi i problemit bazë të ndërgjegjes së kompjuterit bazë (dështimi i diskut në sistem dhe furnizimi me energji i dëmtuar dhe skedarët e humbur/të korruptuar): 4 hapa
Riparimi i problemit bazë të ndërgjegjes kompjuterike bazë (dështimi i sistemit të diskut dhe PSU i prishur dhe skedarët që mungojnë/korruptojnë): KJO UDHZUES NUK KA PINRFUNDUAR, DO T AD SHTOJ M M SHUM INFORMACION KUR M G KA NJ SHANS. Nëse keni nevojë për ndonjë ndihmë me rregullimin e një kompjuteri ose nëse keni ndonjë pyetje fare, mos ngurroni të më dërgoni mesazh " Në këtë udhëzues do t'ju tregoj se si të riparoni komin bazë