Агуулгын хүснэгт:
- Алхам 1: Толгой файлууд
- Алхам 2: Видео бичлэг хийх
- Алхам 3: Хүрээг авах, өнгө тодорхойлох
- Алхам 4: Маск хийх, задлах
- Алхам 5: Эцэст нь үзүүлж байна
- Алхам 6: Демо
Видео: OpenCV ашиглан энгийн өнгө илрүүлэх: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
Сайн байна уу! Өнөөдөр би OpenCV болон python ашиглан амьд видеоноос өнгө олж илрүүлэх энгийн аргыг үзүүлэх гэж байна.
Үндсэндээ би шаардлагатай өнгийг арын дэвсгэр дээр байгаа эсэхийг шалгах болно, гэхдээ OpenCV модулийг ашиглан би тэр бүсийг масклаж, хүрээг нэгэн зэрэг харуулна.
Алхам 1: Толгой файлууд
Одоо энд би cv2 ба NumPy гэсэн хоёр толгой файлыг ашигласан. Үндсэндээ cv2 бол OpenCV номын сан бөгөөд кодууд дахь командыг ашиглахад чухал ач холбогдолтой бүх c ++ файлуудыг ачаалдаг (үүнд бүх тодорхойлолтыг агуулдаг).
Мөн Numpy бол олон хэмжээст массивыг хадгалахад зайлшгүй шаардлагатай python номын сан юм. Бид өнгөний хүрээний координатаа хадгалахын тулд ашиглах болно.
Мөн numpy as np нь үндсэндээ numpy -ийн оронд np -ийг ашиглан кодоо бага зэрэг богиносгоход тусалдаг.
Алхам 2: Видео бичлэг хийх
Питон ашиглах үед энэ нь маш энгийн зүйл юм. Энд бид видео бичигчийг асаах хэрэгтэй бөгөөд ингэснээр жаазыг бичиж эхлэх боломжтой болно.
Одоо VideoCapture доторх утга нь камерыг харуулж байна, миний хувьд камер миний зөөврийн компьютерт холбогдсон байгаа тул 0 байна.
Та хоёрдогч камер гэх мэт 1 -тэй адил явж болно. VideoCapture нь түүнд зориулагдсан объектыг бий болгодог.
Алхам 3: Хүрээг авах, өнгө тодорхойлох
Одоо бид видеог шуурхай авахын тулд ямар нэгэн зүйл хийх ёстой бөгөөд энэ нь дүрсийг гаргаж авахад тусалж, шаардлагатай бол үүн дээр ажиллах боломжтой болно.
"while" давталт нь давталтыг шаардлагатай хугацаандаа ажиллуулахад бидэнд туслах болно. Одоо "_, frame = cap.read ()" нь авсан хүрээний хүчинтэй эсэхийг шалгаж хадгалахад ашиглагддаг. "cap.read () нь логик хувьсагч бөгөөд хэрэв хүрээ зөв уншигдсан бөгөөд хэрэв танд хүрээ байхгүй бол ямар ч алдаа харагдахгүй бол та зүгээр л None -ийг авах болно.
Одоо 11 ба 12 -р мөрөнд үндсэндээ бидний илрүүлэх ёстой өнгөний хүрээг тодорхойлно. Үүний тулд би цэнхэр өнгийг ашигладаг байсан.
Та хүссэн өнгөөрөө үргэлжлүүлж болно, зөвхөн тухайн өнгөний хувьд BGR утгыг бичээрэй. Numpy массивыг ашиглан хоёр массивыг тодорхойлох нь илүү дээр юм, учир нь бодит ертөнцөд тодорхой өнгийг олж илрүүлэх нь бидний зорилгод нийцэхгүй, харин бид цэнхэр өнгийг тодорхойлж, хүрээ дотор нь илрүүлэх болно.
Үүний тулд би BGR -ийн доод ба дээд BGR утгыг хадгалдаг хоёр хувьсагчийг тодорхойлсон.
Алхам 4: Маск хийх, задлах
Одоо жаазыг далдлах, хүрээний өнгийг гаргаж авах гол ажил энд байна. Би маск хийхийн тулд OpenCV -ийн номын санд байгаа урьдчилан тодорхойлсон тушаалуудыг ашигласан. Үндсэндээ маск хийх нь хүрээний зарим хэсгийг хасах үйл явц юм, өөрөөр хэлбэл бид тодорхойлсон өнгөний мужид байдаггүй BGR өнгөний утгыг cv2.inRange -ээр хийдэг пикселүүдийг устгах болно. Дараа нь бид өнгөний мужийг пикселийн утгаас хамаарч масктай зурган дээр хэрэглэдэг бөгөөд үүний тулд cv2.bitwise_and ашиглана, энэ нь маск болон өнгөний хүрээний утгуудаас хамааран өнгийг масктай бүсэд хуваарилах болно.
Cv2 линк. bitwise_and:
Алхам 5: Эцэст нь үзүүлж байна
Энд би cv2.imshow () -ийг хүрээ болгоныг дүрс болгон харуулахад ашигласан. Би хүрээний өгөгдлийг хувьсагчид хадгалдаг тул тэдгээрийг imshow () дээр татаж авах боломжтой. Энд би анхны, масктай, өнгөт гурван жаазыг бүгдийг нь үзүүлэв.
Одоо бид while давталтаас гарах ёстой. Үүний тулд бид зүгээр л cv2.wait. Key () -ийг хэрэгжүүлж болно. Үндсэндээ энэ нь хариулахаас өмнө хүлээх хугацааг хэлдэг. Тиймээс хэрэв та 0 -ийг давсан бол энэ нь хязгааргүй хүлээх бөгөөд 0xFF нь архитектур нь 64 бит гэж хэлнэ. "ord ()" нь дарахад if block командыг гүйцэтгэх бөгөөд энэ нь давталтаас гарах тэмдэгтийг тодорхойлдог.
Дараа нь cap.release () видео бичигчийг хааж, cv2.destroyAllWindows () нь нээгдсэн бүх цонхыг хаадаг.
Хэрэв танд ямар нэгэн асуудал байвал надад мэдэгдээрэй.
Эх кодын линк:
Зөвлөмж болгож буй:
Өнгө илрүүлэх будаг машин: 4 алхам
Өнгө илрүүлэх будаг машин: Өнгө илрүүлэх будагны машин нь таны эргэн тойрон дахь өнгийг хуулбарлаж, тэдэнтэй зурах боломжийг олгодог. Хэрэв танд үндсэн өнгөний будаг байгаа бол RGB өнгөний мэдрэгч ашиглан хүссэн өнгөө мэдэрч, хольж болно. Гэхдээ тод өнгийн объектыг ашиглаарай гэдгийг санаарай
OpenCV ашиглан Python дээр өнгө илрүүлэх: 8 алхам
OpenCV ашиглан Python дээр өнгө илрүүлэх: Сайн байна уу! Энэхүү заавар нь openCV номын санг ашиглан python дээрх дүрсээс тодорхой өнгө гаргаж авахад туслах зорилгоор ашиглагддаг. Хэрэв та энэ техникийг шинээр ашиглаж байгаа бол санаа зовох хэрэггүй, энэ гарын авлагын төгсгөлд та өөрийн өнгөөр програмчлах боломжтой болно
Arduino RGB өнгө сонгогч - Бодит амьдралын объектуудаас өнгө сонгох: 7 алхам (зурагтай)
Arduino RGB өнгө сонгогч - Бодит амьдрал дахь объектуудаас өнгө сонгох: Arduino дээр суурилсан RGB өнгө сонгогчийг ашиглан физик объектуудаас өнгө сонгоход хялбар бөгөөд ингэснээр компьютер эсвэл гар утсан дээрээ бодит амьдрал дээр харж буй өнгөө сэргээх боломжтой болно. Хямд TCS347 ашиглан объектын өнгийг скан хийх товчлуурыг дарахад л хангалттай
GIMP -ийг ашиглан хүмүүсийг/хүн/амьтан/роботыг үнэхээр дажгүй/тод дулааны хараа (таны сонгосон өнгө) мэт харагдуулах үнэхээр энгийн/хялбар/төвөгтэй биш арга: 4 алхам
GIMP -ийг ашиглан хүмүүсийг/хүн/амьтан/роботыг үнэхээр дажгүй/тод дулааны хараа (таны сонгосон өнгө) мэт харагдуулах үнэхээр энгийн/хялбар/төвөгтэй биш арга: … … гарчгийг уншина уу
RGB LED ашиглан өнгө илрүүлэх: 4 алхам
RGB LED ашиглан өнгө илрүүлэх: Та объектын өнгийг илрүүлэх автомат аргыг хүсч байсан уу? Тухайн объект дээр тодорхой өнгийн гэрэл тусгаж, хичнээн их гэрэл тусаж байгааг харснаар тухайн объект ямар өнгөтэй болохыг мэдэх боломжтой болно. Жишээлбэл, хэрэв та улаан гэрэл асааж байвал