![OpenCV põhiprojektid: 5 sammu OpenCV põhiprojektid: 5 sammu](https://i.howwhatproduce.com/images/007/image-18326-j.webp)
Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
![OpenCV põhiprojektid OpenCV põhiprojektid](https://i.howwhatproduce.com/images/007/image-18326-1-j.webp)
Selles projektis uurime mõningaid OpenCV põhifunktsioone nelja lihtsa projekti kaudu, mis hõlmavad otsevideovoogu. Need on näotuvastus, tausta eemaldamine, servade eriline visuaalne renderdamine ja hägustava efekti rakendamine otsevideovoole. Minu peamine eesmärk neid projekte proovida oli OpenCV liidesega jalad lihtsalt märjaks teha, kuna kavatsen süveneda arvuti nägemisvaldkonda
Tarvikud
- Arvuti, mis töötab Pythoniga
- Avatud CV raamatukogu, Numpy raamatukogu, tkinter raamatukogu, sys raamatukogu
- Kaamera arvutiga ühendamiseks (kui arvuti seda veel ei sisalda)
- Programmi pythoni fail (sisaldub selles juhendis)
- haarcascade xml -fail (sisaldub selles juhendis)
Samm: FaceDetect funktsioon
![FaceDetect funktsioon FaceDetect funktsioon](https://i.howwhatproduce.com/images/007/image-18326-2-j.webp)
![FaceDetect funktsioon FaceDetect funktsioon](https://i.howwhatproduce.com/images/007/image-18326-3-j.webp)
See funktsioon näitab teie kaamera videot roheliste ruutudega mis tahes näol, mille see üles võtab. Koodis kasutame funktsiooni cv2. VideoCapture (), et salvestada jäädvustatud video objekti nimega "püüdmine". CAPTURE_INDEX on teie arvuti määratud number, mis vastab teie arvuti sisendloendis oleva kaamera indeksile. Kui arvutiga pole ühendatud väliskaamerat, peaks 0 või 1 töötama.
Face_cascade objekt lähtestatakse funktsiooni cascadeClassifier ja OpenCV githubis leiduva faili "haarcascade_frontalface_default.xml" abil. Kasutame seda objekti nimekirjas "näod" tuvastatud nägude salvestamiseks neljasuunalisena, mis hoiab nägusid x koordinaat, y koordinaat, laius ja kõrgus. Seejärel joonistame ristküliku, mis ümbritseb nägu ideaalselt, kasutades funktsiooni cv2.rectangle
Sellest videost jäädvustab OpenCV paljusid meie samasilmus olevaid pilte, kasutades capture.read () ja salvestab pildi kaadrisse, mida nimetasime "img". Seejärel tõlgendatakse ja muudetakse iga pilti vastavalt soovile. FaceDetecti puhul muudame pildi halliks, kasutades funktsiooni cvtColor, mis teisendab esimeses parameetris antud pildi teatud parameetriks, mis on määratud teises parameetris. Teise parameetri vastuvõetavate väärtuste loendi leiate veebist. Seejärel kuvame pildi aknas nimega "Näo tuvastamine", kasutades funktsiooni imshow (), mis võtab akna nime ja pildiraami kuvamiseks stringi.
Lõpuks ootame, kuni kasutaja sisestab funktsiooni cv2.waitKey () abil klahvi q. Maski 0xFF kasutatakse tavapäraselt 64 -bitiste arvutite jaoks. Kui kasutaja on videovoo lõpetanud, vabastab funktsioon faceDetect jäädvustusobjekti ja hävitab kõik muud OpenCV liidese all avatud aknad. Kõik muud funktsioonid järgivad sarnast konstruktsiooni.
2. samm: funktsioon BackgroundRemove
![Funktsioon BackgroundRemove Funktsioon BackgroundRemove](https://i.howwhatproduce.com/images/007/image-18326-4-j.webp)
![Funktsioon BackgroundRemove Funktsioon BackgroundRemove](https://i.howwhatproduce.com/images/007/image-18326-5-j.webp)
See funktsioon üritab eemaldada meie video taustaosa ja jätta ainult esiplaani pildi. See ei pruugi mõnel kaameral töötada, kuna see kasutab valgustuse reguleerimise funktsiooni, mis aktiveerub, kui kaadrisse sisenevad erinevad objektid/ fookused. Kui teie tausta eemaldamise funktsioon ei tööta, ärge muretsege- see võib olla lihtsalt teie kaamera!
Selle funktsiooni kasutamiseks astuge kaamera raamist eemale ja vajutage taustpildi jäädvustamiseks klahvi "d". On oluline, et taustal ei oleks ühtegi liikuvat objekti, mida soovite jäädvustada. Siis saame kaamera raami tagasi astuda. Kui funktsioon töötas, peaks kasutaja nägema ennast ainult funktsiooni videovoos. Igasugune müra/must täpp esiplaanil võib olla tingitud kaamera valgustuse reguleerimisest. Teise tausta jäädvustamiseks vajutage uuesti käivitamiseks klahvi "r", seejärel vajutage uuesti "d".
Selle funktsiooni mõned võtmed on "lipu" tõeväärtuse kasutamine, mis tõuseb kohe, kui kasutaja vajutab nuppu d. See jäädvustab tausta ja võimaldab meil selle funktsiooni voogesitatud videost eemaldada. Meie eesmärk on salvestada taustapilt ref_img, et saaksime seda eristada esiplaanist, mis jäädvustab kõiki liikuvaid objekte. Kasutame funktsiooni cv2.subtract (), et lahutada esiplaanil olev pilt taustpildist ja vastupidi, seejärel tühistada kohe pärast seda kahe pildi väikesed erinevused. Taust on must.
Fgmask valmistatakse nende kahe pildi erinevuse abil ja rakendatakse seejärel funktsioonile videovoog, kasutades funktsiooni OpenCV cv2.bitwise_and ().
3. samm: funktsioon VideoEdges
![VideoEdges funktsioon VideoEdges funktsioon](https://i.howwhatproduce.com/images/007/image-18326-6-j.webp)
![VideoEdges funktsioon VideoEdges funktsioon](https://i.howwhatproduce.com/images/007/image-18326-7-j.webp)
See funktsioon tagastab meie otsevideovoo, kuid tuvastatavad servad muudetakse valgeks, samas kui kõik muu on pimendatud. Mis eristab seda funktsiooni teistest funktsioonidest, on meie algse video teisendamine RBG-vormingust HSV-ks, mis tähistab tooni, küllastust ja variatsiooni- erinevat video ja valguse töötlemise meetodit. Selle meetodi abil saame hõlpsamini video piirjooni eristada, rakendades filtrit (red_low kuni red_high).
Canny Edge Detectionit kasutatakse pildi servade tuvastamiseks. See aktsepteerib sisendina halli skaala kujutist ja kasutab mitmeastmelist algoritmi.
Samm 4: VideoBlur funktsioon
![VideoBlur funktsioon VideoBlur funktsioon](https://i.howwhatproduce.com/images/007/image-18326-8-j.webp)
![VideoBlur funktsioon VideoBlur funktsioon](https://i.howwhatproduce.com/images/007/image-18326-9-j.webp)
Seda funktsiooni kasutatakse meie videovoole hägususe lisamiseks. Funktsioon lihtne kutsub meie raamil funktsiooni GaussianBlur cv2. Lisateavet funktsiooni gaussianBlur kohta leiate siit:
opencv-python-tutroals.readthedocs.io/en/l…
5. samm: täiustused
Selle projekti kõige tundlikum funktsioon on tausta eemaldamise funktsioon, kuna see nõuab kaamera kasutamist, millel puudub valgustuse reguleerimise funktsioon. OpenCV raamatukogus võib olla parem funktsioonide komplekt, mis võtab selle valgustuse reguleerimise arvesse ja eemaldab sujuvalt tausta (sarnaselt rohelisele ekraanile).
Võiksime kasutada ka muid näotuvastusfunktsioone, mis võivad toota rohkem funktsioone kui lihtsalt (x, y) koordinaatide tagastamine. Võib -olla poleks nägude meeldejätmise võimega näotuvastusprogrammi rakendamine liiga keeruline.
Hägususe funktsiooni saab kasutaja intuitiivse juhtimise abil rohkem kohandada. Näiteks võib kasutaja soovida hägususefekti intensiivsust reguleerida või valida hägustamiseks kaadris kindla ala.
Soovitan:
QR -koodi skanner OpenCV kasutamine Pythonis: 7 sammu
![QR -koodi skanner OpenCV kasutamine Pythonis: 7 sammu QR -koodi skanner OpenCV kasutamine Pythonis: 7 sammu](https://i.howwhatproduce.com/images/001/image-2256-j.webp)
QR-koodi skanner OpenCV kasutamine Pythonis: Tänapäeva maailmas näeme, et QR-koodi ja vöötkoodi kasutatakse peaaegu kõikjal, alates toote pakendamisest kuni veebimakseteni, ja tänapäeval näeme menüü nägemiseks isegi restoranis QR-koode. kahtlen, et see on nüüd suur mõte. Kuid kas olete kunagi häbenenud
Reaalajas Rubiku kuubi silmside lahendaja, kasutades Raspberry Pi ja OpenCV: 4 sammu
![Reaalajas Rubiku kuubi silmside lahendaja, kasutades Raspberry Pi ja OpenCV: 4 sammu Reaalajas Rubiku kuubi silmside lahendaja, kasutades Raspberry Pi ja OpenCV: 4 sammu](https://i.howwhatproduce.com/images/001/image-192-17-j.webp)
Reaalajas Rubiku kuubiku silmside lahendaja, kasutades Raspberry Pi ja OpenCV: see on Rubiku kuubiku tööriista teine versioon, mis on mõeldud silmadega lahendamiseks. Esimene versioon töötati välja javascripti abil, näete projekti RubiksCubeBlindfolded1 Erinevalt eelmisest kasutab see versioon värvide ja e
Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 sammu
![Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 sammu Vision 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Aplicativo Android: 6 sammu](https://i.howwhatproduce.com/images/004/image-10674-j.webp)
Visioon 4all - Sistema Visão Assistida Para Deficientes Visuais Usando OpenCV, Dragonboard 410c E Applicativo Android: DESCRI Ç Ã OO intuito do projeto é dar autonomia para deficientes visuais se locomoverem em ambientes siseruumides como casas või kaubanduskeskustes ja lennujaamades.A locomo ç ã o em ambientes j á mapeados pode ou n ã o s
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: 7 sammu
![Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: 7 sammu Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: 7 sammu](https://i.howwhatproduce.com/images/004/image-11537-j.webp)
Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV: A nossa lixeira inteligente consiste na separa ç ã o autom á tica do lixo. Atravi veebikaamera, identifikaator või tüüp de lixo e o deposita no compartimento sobado para posteriormente ser reciclado
Pilditöötlus Raspberry Pi abil: OpenCV ja pildi värvide eraldamise installimine: 4 sammu
![Pilditöötlus Raspberry Pi abil: OpenCV ja pildi värvide eraldamise installimine: 4 sammu Pilditöötlus Raspberry Pi abil: OpenCV ja pildi värvide eraldamise installimine: 4 sammu](https://i.howwhatproduce.com/images/005/image-14151-j.webp)
Pilditöötlus Raspberry Pi abil: OpenCV ja pildivärvide eraldamise installimine: see postitus on esimene mitmest järgnevast pilditöötluse õpetusest. Vaatame pilti moodustavaid piksleid lähemalt, õpime OpenCV -d Raspberry Pi -le installima ja kirjutame pildi salvestamiseks ka testiskripte