#python #opencv #detection #direction
#питон #opencv #обнаружение #направление
Вопрос:
Я использую python с OpenCV и pyautogui, чтобы играть в игру тетрис (через веб-сайт) своими руками. Для того, чтобы играть в игру, есть 4 направления (вверх/вниз/влево/вправо), которые я хочу определить, чтобы они соответствовали входам для pyautogui. Я перепробовал так много способов определить направление пальца,что он указывает, но ничего не работает последовательно, любая помощь в текущем решении, над которым я работаю, или другая идея была бы отличной.
В настоящее время я пытаюсь использовать findContours с ConvexHull для определения периметра руки и пытаюсь найти стороны с наименьшим углом, который, в свою очередь, должен указать мне сторону, на которую указывает палец. Но я не знаю, как извлечь эту информацию.
Я попытался использовать функцию привязки, чтобы найти, какая сторона длиннее (w или h), затем разделить прямоугольник пополам и посмотреть, на какой стороне больше пикселей (из двоичного файла контура), но это было недостаточно последовательно.
Я также пытался использовать HoughLines и HoughLinesP, чтобы найти точку схода, но я не мог понять, как заставить это работать.
В принципе, я в растерянности.
Редактировать: Я пытаюсь избежать MediaPipe, чтобы показать, что понимаю, как использовать элементы OpenCV
Комментарии:
1. Goggle mediapipe, он может сделать то, что вам нужно.
2. @MarioAbbruscato Да, я надеялся сделать это без использования встроенной библиотеки, но она может прибегнуть к этому. Я внесу правку в исходный вопрос, чтобы отметить, что я знаю о MediaPipe, но хотел бы избежать этого 🙂 Хотя спасибо тебе!
3. Вам нужна точка для каждого пальца и одна точка для запястья. Таким образом, линия от точки запястья до пальца дает вам ориентацию пальца. Постарайтесь правильно удерживать руку , затем нанесите контуры и выпуклую оболочку, чтобы получить точки координат пальцев и запястья.
4. cv2.Эффекты выпуклости(контур, выпуклость) могут быть полезными