в том, что Я с учеником работаем над школьным проектом на Python и в процессе его реализации зашли в тупик.
Концепция проекта объединить opencv-contrib, ros noetic и zencad чтобы с помощью аруко-меток определять размеры объекта, а с помощью zencad рисовать его модель в файл.
Работать это должно на Ubuntu 20+, с Python 3.10, т.к. на предыдущих версиях невозможно установить рабочий ROS и Zencad.
Сама проблема на данный момент заключается в том, что в относительно новых версиях openCV не работает функция cv2.aruco.detectMarkers().
Мы не понимаем как это обойти или заставить правильно работать от слова совсем, перепробовали разные версии библиотек, пытались через другие функции решить этот вопрос и пока все безрезультатно. В конечном итоге программа ругается на то, что нет такой команды detectMarkers()
Вот кусок кода для понимания:
import sys
import cv2
sys.dont_write_bytecode = True
import cv2 as cv
import cv2.aruco as aruco
from object import *
import numpy as np
aruco_size = 0.05 # m
aspect_ratio_aruco = 4
parameters = cv.aruco.DetectorParameters()
aruco_dict = cv.aruco.getPredefinedDictionary(
cv.aruco.DICT_4X4_50) if aspect_ratio_aruco == 4 else cv.aruco.getPredefinedDictionary(cv.aruco.DICT_5X5_50)
detector = HomogeneousBgDetector()
img = cv2.imread("case_aruco_max.jpg")
img_gray = cv2.cvtColor(imga, cv.COLOR_BGR2GRAY)
img = cv.resize(img, None, fx=0.25, fy=0.25)
corners, ids, rejectedImgPoints = cv2.aruco.detectMarkers(img_gray, aruco_dict, parameters=parameters)
```
Заранее спасибо!
Можете попробовать April tags как замену аруко. Но под них нужна отдельная библиотека https://robotics.stackexchange.com/questions/19901/apriltag-vs-aruco-markers
На первый взгляд ошибка в синтаксисе. Вы импортируете cv2. aruco и называете aruco, а потом обращаетесь как cv2.aruco. При этом cv2 называете как cv. Попробуйте сначала исправить синтаксические ошибки, ну а потом смотрите версию библиотеки и почитайте документацию для вашей версии.
А вообще имеет смысл почитать доку для версии, которую вы ставили В 4 версии функция перенесена в метод класса https://docs.opencv.org/4.x/d2/d1a/classcv_1_1aruco_1_1ArucoDetector.html#a0c1d14251bf1cbb06277f49cfe1c9b61
Доброе утро! Спасибо за информацию, попробуем.
Пытаемся разобраться
Обсуждают сегодня