- aruco board: use solvePnP

- refactored
This commit is contained in:
2025-11-24 22:07:05 +01:00
parent 4431f3a574
commit 4c40a7e191
3 changed files with 21 additions and 18 deletions
+2 -2
View File
@@ -57,7 +57,7 @@ def process_video(detector: cv.aruco.CharucoDetector, board):
if k == ord('q'):
break
def process(detector: cv.aruco.CharucoDetector, board, img, mtx, dist): # Load previously saved data
def process(detector: cv.aruco.CharucoDetector, board: cv.aruco.Board, img, mtx, dist): # Load previously saved data
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
charuco_corners, charuco_ids, marker_corners, marker_ids = detector.detectBoard(gray)
if charuco_corners is not None:
@@ -68,7 +68,7 @@ def process(detector: cv.aruco.CharucoDetector, board, img, mtx, dist): # Load p
# Draw a square around the markers
cv.aruco.drawDetectedMarkers(img, marker_corners)
if len(charuco_ids) > 5:
if len(charuco_ids) >= len(board.getIds()):
obj_points, img_points = board.matchImagePoints(charuco_corners, charuco_ids)
pose, rvec, tvec = cv.solvePnP(obj_points, img_points, mtx, dist, None, None)
if pose: