Ranglar maydonini o'zgartirish
Maqsadlar
• Ushbu o'quv qo'llanmada siz rasmlarni BGR ↔ Grey, BGR kabi ranglarni boshqa joyga qanday o'zgartirishni o'rganasiz.
↔HSV va boshqalar.
• Bundan tashqari, videoda rangli ob'ektni ajratib oladigan dastur yaratamiz
• Siz quyidagi funktsiyalarni o'rganasiz: cv2.cvtColor (), cv2.inRange () va boshqalar.
Rang-makonni o'zgartirish
OpenCV-da 150 dan ortiq ranglarni o'zgartirish usullari mavjud. Ammo ikkitasini ko'rib chiqamiz
eng keng tarqalgan BGR↔Gray va BGR↔HSV.
Rangni o'zgartirish uchun biz cv2.cvtColor (input_image, bayroq) funktsiyasidan foydalanamiz, bu erda bayroq rangni belgilaydi.
konversiya turi.
BGR → Kul rangni o'zgartirish uchun biz cv2.COLOR_BGR2GRAY bayroqlaridan foydalanamiz. Xuddi shunday BGR → HSV uchun biz bayroqdan foydalanamiz
cv2.COLOR_BGR2HSV. Boshqa bayroqlarni olish uchun Python terminalingizda quyidagi buyruqlarni bajaring:
Eslatma: HSV uchun ranglar oralig'i - [0,179], to'yinganlik darajasi - [0,255] va qiymat oralig'i - [0,255]. Turli xil dasturlardan foydalanish
turli xil tarozilar. Shunday qilib, agar siz OpenCV qiymatlarini ular bilan taqqoslayotgan bo'lsangiz, ushbu diapazonlarni normalizatsiya qilishingiz kerak.
Ob'ektni kuzatish
Endi biz BGR tasvirini HSV-ga qanday o'zgartirishni bilamiz, undan rangli ob'ektni ajratib olish uchun foydalanishimiz mumkin. HSVda bu osonroq
RGB rang-makonidan ko'ra rangni ifodalash uchun. Ilovada biz ko'k rangli ob'ektni chiqarishga harakat qilamiz. Shunday qilib, bu erda usul:
• Videoning har bir ramkasini oling
• BGR-dan HSV rang oralig'iga aylantiring
• Biz HSV tasvirini ko'k ranglarning bir qatoriga qo'yamiz
• Endi ko'k ob'ektni yolg'iz ajratib oling, biz xohlagan rasmda qila olamiz.
Quyida batafsil sharhlangan kod:
Izoh: Rasmda shovqin bor. Keyingi boblarda ularni qanday olib tashlashni ko'rib chiqamiz.
Eslatma: Bu ob'ektni kuzatishda eng oddiy usul. Konturlarning funktsiyalarini bilib olgandan so'ng, ko'p narsalarni qilishingiz mumkin
kabi narsalar ushbu ob'ektning centroidini topadi va undan ob'ektni kuzatish, qo'lingizni oldinga siljitish orqali diagrammalar chizish uchun foydalaning
kamera va boshqa ko'plab qiziqarli narsalar.
Kuzatish uchun HSV qiymatlarini qanday topish mumkin?
Bu stackoverflow.com saytida joylashgan keng tarqalgan savol. Bu juda sodda va siz xuddi shu funktsiyadan foydalanishingiz mumkin,
cv2.cvtColor (). Tasvirni berish o'rniga, siz xohlagan BGR qiymatlarini uzatasiz. Masalan, topish uchun
Green ning HSV qiymati, Python terminalidagi quyidagi buyruqlarni sinab ko'ring:
Endi siz mos ravishda pastki va yuqori chegara sifatida [H-10, 100,100] va [H + 10, 255, 255] olmoqdasiz. Bundan tashqari
usulida siz ushbu qadriyatlarni topish uchun GIMP yoki har qanday onlayn o'zgartirgich kabi rasmlarni tahrirlash vositalaridan foydalanishingiz mumkin, ammo unutmang
HSV diapazonini rostlash uchun
Do'stlaringiz bilan baham: |