我试图在图像上检测ArUco标记,但OpenCV没有检测到标记。我认为这可能是因为分辨率低,但我不确定。
我使用this tool生成一个4x4的ID。
以下是我的代码:
aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_100)
def find_marker(img, x1, y1, x2, y2):
img = img[y1:y2, x1:x2]
img = imutils.resize(img, width=500)
cv2.imshow('result', img)
cv2.waitKey(0)
corners, ids, rej = cv2.aruco.detectMarkers(img, aruco_dict)
print(corners)
print(ids)
字符串
当运行代码时,这是cv.imshow
向我显示的图像:
正如你所看到的,有一个较低分辨率的ArUco标签,但它仍然是可读的。然而,代码打印出None
用于id,空的()
用于角。
1条答案
按热度按时间arknldoa1#
你需要有一个白色边界周围的所有四个边缘的标记。
检测首先检查图像中的方形。如果标记周围没有白色边框,则无法检测标记的外部方形。