![Pangunahing Mga Proyekto ng OpenCV: 5 Mga Hakbang Pangunahing Mga Proyekto ng OpenCV: 5 Mga Hakbang](https://i.howwhatproduce.com/images/007/image-18326-j.webp)
Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-23 15:12
![Mga Pangunahing Proyekto ng OpenCV Mga Pangunahing Proyekto ng OpenCV](https://i.howwhatproduce.com/images/007/image-18326-1-j.webp)
Sa proyektong ito, natutuklasan namin ang ilang pangunahing pagpapaandar ng OpenCV sa pamamagitan ng 4 na simpleng mga proyekto na nagsasangkot ng isang live na stream ng video. Ito ang pagkilala sa mukha, pag-aalis sa background, espesyal na visual rendering ng mga gilid, at paglalapat ng isang malabo na epekto sa live na stream ng video. Aking mga pangunahing layunin para sa pagsubok ang mga proyektong ito ay upang makakuha lamang ang aking mga paa basa sa OpenCV interface, bilang Plano ko upang hanaping mabuti mas malalim sa larangan ng computer vision
Mga gamit
- Nagpapatakbo ng Python sa computer
- Buksan ang CV library, Numpy library, tkinter library, sys library
- Camera upang kumonekta sa computer (kung ang computer ay hindi kasama ang isa na)
- Ang file ng python ng programa (kasama sa itinuturo na ito)
- haarcascade xml file (kasama sa itinuturo na ito)
Hakbang 1: Pag-andar ng FaceDetect
![Pag-andar ng FaceDetect Pag-andar ng FaceDetect](https://i.howwhatproduce.com/images/007/image-18326-2-j.webp)
![Pag-andar ng FaceDetect Pag-andar ng FaceDetect](https://i.howwhatproduce.com/images/007/image-18326-3-j.webp)
Ipinapakita ng pagpapaandar na ito ang video ng iyong camera na may berdeng mga parisukat sa anumang mga mukha na kinukuha nito. Sa code, gagamitin namin ang mga cv2. VideoCapture () function na upang mag-imbak ang video na kami ay pagkuha sa isang bagay na may pangalang "capture". Ang CAPTURE_INDEX ay isang numero set sa pamamagitan ng iyong computer na tumutugon sa index ng iyong camera sa listahan ng video ng computer input. Kung wala kang isang panlabas na camera na nakakonekta sa iyong computer, 0 o 1 ang dapat gumana.
Ang bagay na face_cascade ay naisugod gamit ang pagpapaandar ng cascadeClassifier at ang "haarcascade_frontalface_default.xml" na file na natagpuan sa OpenCV github. Ginagamit namin ang bagay na ito upang maiimbak ang mga mukha na napansin sa listahan ng "mga mukha" bilang isang entry na apat na paraan na tuple na humahawak sa mga mukha x coordinate, y coordinate, lapad at taas. Pagkatapos ay gumuhit kami ng isang rektanggulo na perpektong naisasara ang mukha gamit ang pagpapaandar ng cv2.rectangle
Mula sa video na ito, nakukuha ng OpenCV ang maraming mga imahe sa aming habang loop gamit ang capture.read () at pagtatago ng imahe sa isang frame na pinangalanan naming "img". Ang bawat imahe ay na-interpret at binago ayon sa nais namin. Para sa faceDetect, ginagawa naming grey ang imahe gamit ang pagpapaandar ng cvtColor na nagko-convert ng anumang imahe na ibinigay sa unang parameter sa isang partikular na uri ng kulay ng imahe na tinukoy sa pangalawang parameter. Ang listahan ng mga katanggap-tanggap na halaga para sa pangalawang parameter ay matatagpuan sa online. Pagkatapos ay ipinapakita namin ang imahe sa isang window na pinangalanang "Pagtuklas sa mukha" gamit ang pagpapaandar na imshow () na tumatagal ng isang string para sa window name at maipakita ang frame ng imahe.
Sa wakas hinihintay namin ang user na ipasok ang q key gamit ang function na cv2.waitKey (). Ang mask na 0xFF ay ginagamit bilang isang kombensyon para sa 64 bit na mga computer. Matapos ang gumagamit ay natapos na ang video stream, ang FaceDetect function na frees ang pagkuha object pagkatapos destroys anumang iba pang mga bintana binuksan sa ilalim ng OpenCV interface. Ang lahat ng iba pang mga pagpapaandar ay sumusunod sa isang katulad na istraktura ng disenyo.
Hakbang 2: BackgroundRemove Function
![BackgroundRemove Function BackgroundRemove Function](https://i.howwhatproduce.com/images/007/image-18326-4-j.webp)
![BackgroundRemove Function BackgroundRemove Function](https://i.howwhatproduce.com/images/007/image-18326-5-j.webp)
Sinusubukan ng pagpapaandar na ito na alisin ang bahagi ng background ng aming video at iwanan lamang ang harapan na imahe. Hindi ito maaaring trabaho sa ilang mga camera, habang ang mga ito ayusin ang isang ilaw adjustment pag-andar na ay aktibo kapag iba't ibang mga bagay / foci ipasok ang frame. Kung ang iyong backgroundRemove function ay hindi gumagana, huwag mag-alala- maaari lamang itong ang iyong camera!
Upang magamit ang pagpapaandar na ito, lumayo mula sa frame ng camera at pindutin ang "d" key upang makuha ang larawan sa background. Mahalaga na walang mga gumagalaw na bagay sa background na nais mong makuha. Pagkatapos, maaari kaming bumalik sa frame ng camera. Kung gumana ang pagpapaandar, dapat lamang makita ng gumagamit ang kanilang sarili sa stream ng video ng pagpapaandar. Anumang ingay / itim na bloke sa harapan ng imahe ay maaaring isang resulta ng pagsasaayos ng ilaw ng camera. Upang makuha ang isa pang background, pindutin ang "r" key upang muling simulan, pagkatapos ay pindutin muli ang "d".
Ang ilang mga key tumagal-aways para sa function na ito ay ang paggamit ng "bandila" boolean na itinaas ang mga instant na mga gumagamit presses ang d button. Kinukuha nito ang background at pinapayagan kaming alisin ito mula sa video na na-stream ng pagpapaandar. Nilalayon naming itabi ang larawan sa background sa ref_img upang maaari naming makilala ito mula sa harapan ng imahe, na kumukuha ng anumang gumagalaw na bagay. Ginagamit namin ang pagpapaandar ng cv2.subtract () upang ibawas ang naunang ground image mula sa background na imahe at kabaliktaran, pagkatapos ay kanselahin ang anumang mga pagkakaiba sa minuscule sa dalawang imahe kaagad pagkatapos. Ang background ay naitim.
Ang fgmask ay ginawa gamit ang pagkakaiba sa pagitan ng dalawang imaheng ito at pagkatapos ay inilapat sa mga function ng video stream gamit ang OpenCV cv2.bitwise_and () function.
Hakbang 3: Pag-andar ng VideoEdges
![Pag-andar ng VideoEdges Pag-andar ng VideoEdges](https://i.howwhatproduce.com/images/007/image-18326-6-j.webp)
![Pag-andar ng VideoEdges Pag-andar ng VideoEdges](https://i.howwhatproduce.com/images/007/image-18326-7-j.webp)
Ang function na ito ay nagbabalik ng isang aming live video stream, ngunit ang detectable mga gilid ay nai-render puti habang lahat ng iba pa ay blacked out. Ang nakikilala sa pagpapaandar na ito mula sa iba pang mga pagpapaandar ay ang pag-convert ng aming orihinal na video mula sa format na RBG patungong HSV, na nangangahulugang kulay, saturation at pagkakaiba-iba - isang iba't ibang paraan ng pagpoproseso ng ilaw at kulay mula sa isang video. Sa pamamaraang ito, mas madali nating makikilala ang mga balangkas sa video sa pamamagitan ng paglalapat ng isang filter (red_low to red_high).
Ginagamit ang Canny Edge Detection upang makita ang mga gilid sa isang imahe. Tumatanggap ito ng isang kulay-abo na imahe ng scale bilang input at gumagamit ito ng isang multistage algorithm.
Hakbang 4: Pag-andar ng VideoBlur
![Pag-andar ng VideoBlur Pag-andar ng VideoBlur](https://i.howwhatproduce.com/images/007/image-18326-8-j.webp)
![Pag-andar ng VideoBlur Pag-andar ng VideoBlur](https://i.howwhatproduce.com/images/007/image-18326-9-j.webp)
Ginagamit ang pagpapaandar na ito upang magdagdag ng malabong epekto sa aming video stream. Tinatawag ng simpleng pagpapaandar ang pagpapaandar ng GaussianBlur cv2 sa aming frame. Ang karagdagang impormasyon sa pagpapaandar ng gaussianBlur ay matatagpuan dito:
opencv-python-tutroals.readthedocs.io/en/l…
Hakbang 5: Mga Pagpapabuti
Ang pinaka-sensitibong pag-andar sa proyektong ito ay ang pag-andar sa pag-alis ng background, dahil nangangailangan ito ng paggamit ng isang camera na walang pag-andar sa pag-aayos ng ilaw. Maaaring mayroong isang mas mahusay na hanay ng mga pag-andar sa loob ng library ng OpenCV na maaaring account para sa pagsasaayos ng ilaw na ito at maayos na alisin ang background (katulad ng isang berdeng screen).
maaari rin naming gamitin ang iba pang mga function face detection na maaaring makabuo ng mga bagay na may higit pang pag-andar maliban lang bumabalik (x, y) coordinates. Marahil ang isang programa sa pagkilala sa mukha na may kakayahang maalala ang mga mukha ay hindi magiging mahirap na ipatupad.
Ang pag-andar ng blur ay maaaring gawing mas maraming pagpapasadya sa pamamagitan ng intuitive control ng gumagamit. Halimbawa, maaaring nais ng gumagamit na ayusin ang tindi ng blurring na epekto o pumili ng isang tukoy na lugar sa loob ng frame upang lumabo.
Inirerekumendang:
Mga Soldering Surface Mount Component - Mga Pangunahing Kaalaman sa Paghinang: 9 Mga Hakbang (na may Mga Larawan)
![Mga Soldering Surface Mount Component - Mga Pangunahing Kaalaman sa Paghinang: 9 Mga Hakbang (na may Mga Larawan) Mga Soldering Surface Mount Component - Mga Pangunahing Kaalaman sa Paghinang: 9 Mga Hakbang (na may Mga Larawan)](https://i.howwhatproduce.com/images/001/image-315-j.webp)
Mga Soldering Surface Mount Component | Mga Pangunahing Kaalaman sa Paghinang: Sa ngayon sa aking Serye ng Mga Pangunahing Kaalaman sa Soldering, tinalakay ko ang sapat na mga pangunahing kaalaman tungkol sa paghihinang para masimulan mong magsanay. Sa Ituturo na ito kung ano ang tatalakayin ko ay medyo mas advanced, ngunit ito ay ilan sa mga pangunahing kaalaman para sa paghihinang sa Surface Mount Compo
Paghihinang Sa Pamamagitan ng Mga Bahagi ng Hole - Mga Pangunahing Kaalaman sa Paghinang: 8 Hakbang (na may Mga Larawan)
![Paghihinang Sa Pamamagitan ng Mga Bahagi ng Hole - Mga Pangunahing Kaalaman sa Paghinang: 8 Hakbang (na may Mga Larawan) Paghihinang Sa Pamamagitan ng Mga Bahagi ng Hole - Mga Pangunahing Kaalaman sa Paghinang: 8 Hakbang (na may Mga Larawan)](https://i.howwhatproduce.com/images/001/image-325-j.webp)
Paghihinang Sa Pamamagitan ng Mga Bahagi ng Hole | Mga Pangunahing Kaalaman sa Paghinang: Sa Maituturo na Ito Magtatalakay ako ng ilang mga pangunahing kaalaman tungkol sa mga soldering through-hole na bahagi sa mga circuit board. Ipagpapalagay ko na nasuri mo na ang unang 2 Mga Tagubilin para sa aking seryeng Mga Panghinang na Pangunahing Kaalaman. Kung hindi mo pa nasuri ang aking In
Mga Elektronikong Proyekto para sa Mga Nagsisimula: 14 Mga Hakbang (na may Mga Larawan)
![Mga Elektronikong Proyekto para sa Mga Nagsisimula: 14 Mga Hakbang (na may Mga Larawan) Mga Elektronikong Proyekto para sa Mga Nagsisimula: 14 Mga Hakbang (na may Mga Larawan)](https://i.howwhatproduce.com/images/009/image-25556-j.webp)
Mga Elektronikong Proyekto para sa mga Nagsisimula: Kung ang iyong nais na makapasok sa electronics at kailangan ng isang lugar upang simulan ang itinuturo na ito ay para sa iyo. Mayroong isang bilang ng mga napaka murang mga kit sa eBay at Aliexpress na maaari kang makakuha ng para sa 2 o 3 dolyar na maaaring magbigay sa iyo ng ilang karanasan sa identifi ng bahagi
10 Pangunahing Mga Proyekto ng Arduino para sa Mga Nagsisimula! Gumawa ng hindi bababa sa 15 Mga Proyekto Na May Isang solong Lupon !: 6 Mga Hakbang
![10 Pangunahing Mga Proyekto ng Arduino para sa Mga Nagsisimula! Gumawa ng hindi bababa sa 15 Mga Proyekto Na May Isang solong Lupon !: 6 Mga Hakbang 10 Pangunahing Mga Proyekto ng Arduino para sa Mga Nagsisimula! Gumawa ng hindi bababa sa 15 Mga Proyekto Na May Isang solong Lupon !: 6 Mga Hakbang](https://i.howwhatproduce.com/images/006/image-15858-9-j.webp)
10 Pangunahing Mga Proyekto ng Arduino para sa Mga Nagsisimula! Gumawa ng hindi bababa sa 15 Mga Proyekto Na May Isang solong Lupon !: Arduino Project & Lupon ng Tutorial; May kasamang 10 pangunahing mga proyekto ng Arduino. Lahat ng mga source code, ang Gerber file at marami pa. Walang SMD! Madaling paghihinang para sa lahat. Madaling naaalis at mapapalitan na mga bahagi. Maaari kang gumawa ng hindi bababa sa 15 mga proyekto sa isang solong bo
USB Powered Burner! Ang Proyekto na Ito ay Maaaring Sunog Sa Pamamagitan ng Plastics / Wood / Paper (masaya na Proyekto din Ay Dapat Maging Napakahusay na Kahoy): 3 Mga Hakbang
![USB Powered Burner! Ang Proyekto na Ito ay Maaaring Sunog Sa Pamamagitan ng Plastics / Wood / Paper (masaya na Proyekto din Ay Dapat Maging Napakahusay na Kahoy): 3 Mga Hakbang USB Powered Burner! Ang Proyekto na Ito ay Maaaring Sunog Sa Pamamagitan ng Plastics / Wood / Paper (masaya na Proyekto din Ay Dapat Maging Napakahusay na Kahoy): 3 Mga Hakbang](https://i.howwhatproduce.com/images/004/image-9860-18-j.webp)
USB Powered Burner! Ang Proyekto na Ito ay Maaaring Sunugin Sa Pamamagitan ng Plastics / Wood / Paper (masaya na Proyekto din Ay Dapat Maging Napakahusay na Kahoy): HUWAG GAWIN ANG PAGGAMIT NG ITO !!!! nalaman ko na maaari itong makapinsala sa iyong computer mula sa lahat ng mga komento. maayos naman ang computer ko. Gumamit ng isang 600ma 5v charger ng telepono. ginamit ko ito at gumagana ito ng maayos at walang maaaring mapinsala kung gumamit ka ng isang plug ng kaligtasan upang ihinto ang kapangyarihan s