Mundarija:

Raspberry Pi va OpenCV-dan foydalangan holda, Rubik kubikining ko'zlari yopiq hal qiluvchi: 4 qadam
Raspberry Pi va OpenCV-dan foydalangan holda, Rubik kubikining ko'zlari yopiq hal qiluvchi: 4 qadam

Video: Raspberry Pi va OpenCV-dan foydalangan holda, Rubik kubikining ko'zlari yopiq hal qiluvchi: 4 qadam

Video: Raspberry Pi va OpenCV-dan foydalangan holda, Rubik kubikining ko'zlari yopiq hal qiluvchi: 4 qadam
Video: Обучение YOLO v7 для обнаружения повреждений в инфраструктуре 2023 2024, Dekabr
Anonim

Bu Rubik kubik asbobining ko'r -ko'rona hal qilish uchun qilingan 2 -chi versiyasi. Birinchi versiya javascript tomonidan ishlab chiqilgan, siz RubiksCubeBlindfolded1 loyihasini ko'rishingiz mumkin

Oldindan farqli o'laroq, bu versiya ranglarni aniqlash va kirishni kiritish uchun OpenCV kutubxonasidan foydalanadi va vizualizatsiya texnikasini yaxshilaydi.

Bu yangi versiyadagi eng katta muammo - bu chiqishlarni vizualizatsiya qilish, ketma -ketlik elementlari chizilgan kub 1da ko'rsatiladi. Kub 3D shakli bo'lgani uchun, bir vaqtning o'zida barcha qirralarini ko'rsatish qiyin. Natijalarni mening YouTube kanalimdagi YouTube videosida ko'ring

Men yopishqoq bo'lmagan kubdan foydalanayapman, bu maxsus tan olinishi kerak va ko'pchilik ochiq kodlar qo'llab -quvvatlanmaydi. Men Kim Koomen tomonidan ishlab chiqilgan, qbr loyihasining kubiklarining to'g'ri ranglarini aniqlash uchun kamera ramkasida sobit joylarni ko'rsatadigan ochiq manbadan foydalanganman.

1 -qadam: kerakli komponentlar

  • Raspberry Pi
  • vebkamera

yoki noutbukdan foydalanishingiz mumkin

2 -qadam: qaramlik

  • Python 3
  • noaniq kutubxona
  • OpenCV kutubxonasi

$ sudo apt-get install python3-opencv

Ko'zlari bog'langan Rubiks to'plami

$ pip3 RubiksBlindfolded -ni o'rnating

3 -qadam: tayyorgarlik

Rangni aniqlashni dastlabki qadam sifatida sozlashingiz kerak. HSV rang kodlari yorug'lik, kamera sifati va piksellar soniga va kub ranglarining o'ziga qarab o'zgaradi. Mening vaziyatimda to'g'ri natijalarga erishish uchun oq va sariq chiroqlarni birlashtiraman.

Colordetection.py -da get_color_name (hsv) funktsiyasini yangilang

Asl manba kodi kubni echish uchun kociemba paketidan foydalanadi, u har qanday chalkashliklarning teskari qadamlarini topib hal qiladi. Ushbu versiyada men PyPI -da chop etilgan RubiksBlindfolded deb nomlangan o'zim hal qilish paketidan foydalandim. Rubiksni ko'r -ko'rona qanday ishlatishni bilish uchun tavsifga qarang

4 -qadam: Foydalanish

Foydalanish
Foydalanish
Foydalanish
Foydalanish

Barcha bog'liqliklar o'rnatilgandan va kamerangiz o'rnatilgandan so'ng, ko'r -ko'rona.py skriptini ishga tushirish vaqti keldi

Birinchidan, siz kubni to'g'ri yo'nalishda skanerlashingiz kerak. Bu kub tuzilishi, yuzlarni skanerlash tartibi muhim emas. E'tibor bering, bu kub yuzlarining standart ranglari, ularni ko'r -ko'rona.py skriptidagi yozuv lug'atini yangilash orqali o'zgartirish mumkin.

Skanerlash uchun bo'sh joy tugmachasini bosib, ko'rinishni saqlang va tugatgandan so'ng ESC tugmasini bosing

Ikkinchidan, siz konsolda echimlar ketma -ketligini ko'rishingiz mumkin va paritet algoritmini qo'llashingiz kerakmi yoki yo'qligini aytib beradi.

Uchinchidan, chekka ketma -ketligi va burchak ketma -ketligi uchun 2 chizilgan kubni ko'rsatadigan yangi ramka yaratiladi. Siz ketma -ketlik elementlarini almashtirish uchun chap va o'ng o'q tugmalaridan, chekka va burchak o'rtasida o'tish uchun esa yuqoriga va pastga o'q tugmalaridan foydalanishingiz mumkin. ochiq kul rang joriy ketma -ketlikni ifodalaydi.

Siz o'q tugmalari yordamida dinamik o'zgarayotgan joriy bufer ranglarini ko'rishingiz mumkin. Kulrang ranglar maqsadli kubikni, pushti rang esa almashinadigan yuzni ifodalaydi

Manba kodi

github.com/mn-banjar/blindfolded2

Tavsiya: