![OpenCV -ийн үндсэн төслүүд: 5 алхам OpenCV -ийн үндсэн төслүүд: 5 алхам](https://i.howwhatproduce.com/images/007/image-18326-j.webp)
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00
![OpenCV -ийн үндсэн төслүүд OpenCV -ийн үндсэн төслүүд](https://i.howwhatproduce.com/images/007/image-18326-1-j.webp)
Энэ төсөлд бид шууд видео дамжуулалтыг хамарсан 4 энгийн төслөөр дамжуулан OpenCV -ийн үндсэн функцуудыг судалж байна. Эдгээр нь нүүр царай таних, арын дэвсгэрийг арилгах, ирмэгийг тусгай харагдуулах, шууд видео дамжуулалтанд бүдгэрүүлэх нөлөө үзүүлэх явдал юм. Эдгээр төслүүдийг туршиж үзэх миний гол зорилго бол OpenCV интерфэйсээр хөлөө норгох явдал байсан, учир нь би компьютерийн харааны чиглэлээр илүү гүнзгий судлахаар төлөвлөж байсан.
Хангамж
- Python дээр ажилладаг компьютер
- Нээлттэй CV номын сан, Numpy номын сан, tkinter номын сан, sys номын сан
- Компьютерт холбогдох камер (хэрэв компьютерт аль хэдийн ороогүй бол)
- Програмын python файл (энэ зааварт багтсан болно)
- haarcascade xml файл (энэ зааварт багтсан болно)
Алхам 1: FaceDetect функц
![FaceDetect функц FaceDetect функц](https://i.howwhatproduce.com/images/007/image-18326-2-j.webp)
![FaceDetect функц FaceDetect функц](https://i.howwhatproduce.com/images/007/image-18326-3-j.webp)
Энэ функц нь таны камерын видеог авсан нүүрэн дээрээ ногоон дөрвөлжин хэлбэрээр харуулдаг. Кодод бид cv2. VideoCapture () функцийг ашиглан барьж буй видеогоо "барих" нэртэй объектод хадгалдаг. CAPTURE_INDEX нь таны компьютерийн оруулсан видео жагсаалтын камерын индекстэй тохирч буй тоо юм. Хэрэв таны компьютерт холбогдсон гаднах камер байхгүй бол 0 эсвэл 1 нь ажиллах ёстой.
Face_cascade объектыг cascadeClassifier функц болон OpenCV github дээрээс олдсон "haarcascade_frontalface_default.xml" файлыг ашиглан эхлүүлсэн болно. Бид энэ объектыг "нүүр" жагсаалтаас олж илрүүлсэн нүүрүүдийг x координат, y координат, өргөн ба өндрийг агуулсан дөрвөн талын оролт хэлбэрээр хадгалах зорилгоор ашигладаг. Дараа нь cv2.rectangle функцийг ашиглан нүүрээ төгс хаах тэгш өнцөгт зурна
Энэ видеоноос OpenCV нь олон зургийг "while.read () ашиглан бидний зургийг" img "гэж нэрлэсэн фрэймд хадгалдаг. Дараа нь зураг бүрийг бидний хүссэнээр тайлбарлаж, өөрчилдөг. FaceDetect -ийн хувьд бид cvtColor функцийг ашиглан зургийг саарал болгож, эхний параметрт өгсөн ямар ч зургийг хоёр дахь параметрт заасан тодорхой төрлийн зургийн өнгө болгон хувиргадаг. Хоёрдахь параметрийн зөвшөөрөгдөх утгуудын жагсаалтыг онлайнаар олж болно. Дараа нь бид дүрсийг "Нүүрийг илрүүлэх" нэртэй цонхонд харуулахын тулд imshow () функцийг ашиглан харуулна.
Эцэст нь хэрэглэгч cv2.waitKey () функцийг ашиглан q товчлуурыг оруулахыг хүлээж байна. 0xFF маск нь 64 битийн компьютерт зориулагдсан болно. Хэрэглэгч видео дамжуулалтыг дуусгасны дараа faceDetect функц нь барих объектыг чөлөөлж, дараа нь OpenCV интерфэйс дээр нээгдсэн бусад цонхыг устгадаг. Бусад бүх функцууд нь ижил төстэй дизайны бүтэцтэй байдаг.
Алхам 2: BackgroundRemove функц
![Үндсэн функцийг арилгах Үндсэн функцийг арилгах](https://i.howwhatproduce.com/images/007/image-18326-4-j.webp)
![Үндсэн функцийг арилгах Үндсэн функцийг арилгах](https://i.howwhatproduce.com/images/007/image-18326-5-j.webp)
Энэ функц нь манай видеоны арын хэсгийг арилгаж, зөвхөн урд талын зургийг үлдээхийг оролддог. Зарим камер дээр ажиллахгүй байж магадгүй, учир нь тэдгээр нь янз бүрийн объект/ фокусыг хүрээ рүү оруулах үед идэвхждэг гэрэлтүүлгийн тохируулгын функцийг ашигладаг. Хэрэв таны backgroundRemove функц ажиллахгүй бол бүү санаа зов, энэ бол зүгээр л таны камер байж магадгүй юм!
Энэ функцийг ашиглахын тулд камерын хүрээнээс холдож, "d" товчлуурыг дарж арын зургийг авах боломжтой. Арын дэвсгэр дээр таны авахыг хүссэн хөдөлгөөнт объект байхгүй байх нь чухал юм. Дараа нь бид камерын хүрээ рүү буцаж орно. Хэрэв функц ажиллаж байсан бол хэрэглэгч зөвхөн функцын видео дамжуулалт дээр өөрийгөө харах ёстой. Урд талын зураг дээрх аливаа дуу чимээ/хар бөмбөлөг нь камерын гэрэлтүүлгийн тохируулгын үр дүн байж болно. Өөр дэвсгэр зураг авахын тулд "r" товчийг дарж дахин эхлүүлж, "d" дарна уу.
Энэ функцийг гүйцэтгэх гол арга бол хэрэглэгч d товчлуурыг дарах үед дээшлэх "туг" логикийг ашиглах явдал юм. Энэ нь арын дэвсгэрийг авч, функцээр дамжуулж буй видеоноос устгах боломжийг бидэнд олгодог. Бид арын зургийг ref_img дээр хадгалахыг зорьж байгаа бөгөөд ингэснээр аливаа хөдөлгөөнт объектыг барьж буй урд талын зургаас ялгах боломжтой болно. Бид cv2.subtract () функцийг ашиглан урд талын зургийг арын зургаас хасах ба эсрэгээр нь, дараа нь хоёр зургийн жижиг ялгааг даруй цуцална. Арын дэвсгэрийг харлуулж байна.
Fgmask нь эдгээр хоёр зургийн ялгааг ашиглан хийгдсэн бөгөөд дараа нь OpenCV cv2.bitwise_and () функцийг ашиглан видео дамжуулалтын функцүүдэд хэрэглэнэ.
Алхам 3: VideoEdges функц
![VideoEdges функц VideoEdges функц](https://i.howwhatproduce.com/images/007/image-18326-6-j.webp)
![VideoEdges функц VideoEdges функц](https://i.howwhatproduce.com/images/007/image-18326-7-j.webp)
Энэ функц нь бидний шууд видео дамжуулалтыг буцааж өгдөг боловч бусад бүх зүйлийг харанхуйлах үед илрэх ирмэгийг цагаан болгож өгдөг. Энэ функцийг бусад функцээс ялгаж харуулдаг зүйл бол бидний анхны видеог RBG форматаас HSV болгон хөрвүүлэх явдал юм. Энэ аргын тусламжтайгаар бид шүүлтүүр (red_low -ээс red_high) ашиглан видеон дээрх тоймыг илүү хялбар ялгаж чадна.
Canny Edge Detection нь зургийн ирмэгийг илрүүлэхэд ашиглагддаг. Энэ нь саарал масштабтай зургийг оролт болгон хүлээн авч, олон үе шаттай алгоритмыг ашигладаг.
Алхам 4: VideoBlur функц
![VideoBlur функц VideoBlur функц](https://i.howwhatproduce.com/images/007/image-18326-8-j.webp)
![VideoBlur функц VideoBlur функц](https://i.howwhatproduce.com/images/007/image-18326-9-j.webp)
Энэ функц нь манай видео урсгалд бүдгэрүүлэх нөлөө үзүүлэхэд ашиглагддаг. Энгийн функц нь манай хүрээ дээрх GaussianBlur cv2 функцийг дууддаг. GaussianBlur функцын талаарх дэлгэрэнгүй мэдээллийг эндээс авах боломжтой.
opencv-python-tutroals.readthedocs.io/en/l…
Алхам 5: Сайжруулалт
Энэхүү төслийн хамгийн мэдрэмтгий функц нь арын дэвсгэрийг арилгах функц бөгөөд гэрэлтүүлгийн тохиргоо хийгээгүй камер ашиглах шаардлагатай байдаг. OpenCV номын сангийн гэрэлтүүлгийн энэ тохиргоог тооцож, арын дэвсгэрийг жигд арилгах боломжтой илүү сайн функцууд байж магадгүй юм (ногоон дэлгэцтэй төстэй).
Бид мөн (x, y) координатыг буцааж өгөхөөс өөр илүү функциональ объектыг үйлдвэрлэх боломжтой нүүр илрүүлэх бусад функцийг ашиглаж болно. Царай санах чадвартай нүүр таних програмыг хэрэгжүүлэхэд тийм ч хэцүү биш байх.
Хэрэглэгчийн зөн совингийн хяналтаар бүдгэрүүлэх функцийг илүү тохируулах боломжтой. Жишээлбэл, хэрэглэгч бүдгэрүүлэх эффектийн эрчмийг тохируулах эсвэл бүдгэрүүлэх хүрээ доторх тодорхой хэсгийг сонгохыг хүсч болно.
Зөвлөмж болгож буй:
ПХБ ашиглан илүү сайн төслүүд: 6 алхам
![ПХБ ашиглан илүү сайн төслүүд: 6 алхам ПХБ ашиглан илүү сайн төслүүд: 6 алхам](https://i.howwhatproduce.com/images/005/image-14693-j.webp)
ПХБ -ийг ашиглан илүү сайн төслүүд: Хэрэв та электроникийн төслүүд дээр ажиллах цагийг өнгөрөөсөн бол энэ нь ямар хөгжилтэй, сонирхолтой болохыг та мэднэ. Таны тойрог таны нүдэн дээр шууд гарч ирэхийг харахаас илүү урам зоригтой зүйл гэж үгүй. Танай төсөл төсөл болж хувирахад бүр ч илүү сэтгэл хөдөлгөм болно
16x16 RGB LED самбар Arduino төслүүд: 5 алхам (зурагтай)
![16x16 RGB LED самбар Arduino төслүүд: 5 алхам (зурагтай) 16x16 RGB LED самбар Arduino төслүүд: 5 алхам (зурагтай)](https://i.howwhatproduce.com/images/009/image-26004-j.webp)
16x16 RGB LED самбар Arduino төслүүд: Сайн байна уу, хүн бүр эдгээр гайхалтай 16x16 RGB LED хавтангуудын нэгээр тоглох энгийн газартай болохыг хүсч байгаа тул би энэ төслийг оруулж байна. Би бусад төслүүдийн санаануудыг авч, энэ төсөлд зориулж өөрчилсөн. Энэ нь танд
Arduino төслүүд дэх HX1230 Monochrome LCD: 4 алхам
![Arduino төслүүд дэх HX1230 Monochrome LCD: 4 алхам Arduino төслүүд дэх HX1230 Monochrome LCD: 4 алхам](https://i.howwhatproduce.com/images/010/image-28784-j.webp)
Arduino төслийн HX1230 монохром LCD: эд анги: дурын Arduino HX1230 96x68 пиксел LCD (Nokia 1202, STE2007 гэгддэг) цөөн хэдэн утас
DIY төслүүд - Миний аквариум хянагч: 4 алхам
![DIY төслүүд - Миний аквариум хянагч: 4 алхам DIY төслүүд - Миний аквариум хянагч: 4 алхам](https://i.howwhatproduce.com/images/001/image-1404-43-j.webp)
DIY төслүүд - Миний аквариум хянагч: Энэ нь ямар ч суваг байхгүй, үнэхээр шинэ төсөл хэрэгжүүлж байна. a um aquário que sofreu um restoro já há algum tempo, para isso colocamos sensors de temperatur, de nível de água e de fluxo de
1602 LCD товчлуурын бамбай ашиглан Arduino [+Практик төслүүд]: 7 алхам
![1602 LCD товчлуурын бамбай ашиглан Arduino [+Практик төслүүд]: 7 алхам 1602 LCD товчлуурын бамбай ашиглан Arduino [+Практик төслүүд]: 7 алхам](https://i.howwhatproduce.com/images/002/image-5536-26-j.webp)
1602 LCD Keypad Shield W/ Arduino [+Практик төслүүд] -ийг ашиглах нь: Та энэ болон бусад гайхалтай хичээлүүдийг ElectroPeak -ийн албан ёсны вэбсайтаас уншиж болно. Энэхүү гарын авлагад та Arduino LCD товчлуурын бамбайг 3 практик төслөөр хэрхэн ашиглах талаар сурах болно. Бамбайг хэрхэн тохируулж, түлхүүрүүдийг таних вэHo