From 9343cf9917983b9617d948b96b1a6ced24a6dab8 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Tue, 29 Mar 2022 17:32:53 +0200 Subject: Fixing camera calibration bugs introduced by new ArUco markers dictionary managment --- src/argaze/ArUcoMarkers/ArUcoBoard.py | 2 +- src/argaze/ArUcoMarkers/ArUcoTracker.py | 4 ++-- src/argaze/utils/README.md | 2 +- src/argaze/utils/calibrate_tobii_camera.py | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/argaze/ArUcoMarkers/ArUcoBoard.py b/src/argaze/ArUcoMarkers/ArUcoBoard.py index de50363..d2eea50 100644 --- a/src/argaze/ArUcoMarkers/ArUcoBoard.py +++ b/src/argaze/ArUcoMarkers/ArUcoBoard.py @@ -45,7 +45,7 @@ class ArUcoBoard(): def get_corners_number(self): """Get number of corners.""" - return (self.__board.getChessboardSize()[0] - 1 ) * (self.__board.getChessboardSize()()[1] - 1) + return (self.__board.getChessboardSize()[0] - 1 ) * (self.__board.getChessboardSize()[1] - 1) def export(self, destination_folder: str, dpi: int): """Save a picture of the calibration board.""" diff --git a/src/argaze/ArUcoMarkers/ArUcoTracker.py b/src/argaze/ArUcoMarkers/ArUcoTracker.py index 29e862f..1d67221 100644 --- a/src/argaze/ArUcoMarkers/ArUcoTracker.py +++ b/src/argaze/ArUcoMarkers/ArUcoTracker.py @@ -48,7 +48,7 @@ class ArUcoTracker(): # detect markers from gray picture gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) - self.__markers_corners, self.__markers_ids, rejectedPoints = aruco.detectMarkers(gray, self.__aruco_dict, parameters = self.__aruco_param) + self.__markers_corners, self.__markers_ids, rejectedPoints = aruco.detectMarkers(gray, self.__aruco_dict.get_markers(), parameters = self.__aruco_param) if len(self.__markers_corners) > 0 and estimate_pose: @@ -68,7 +68,7 @@ class ArUcoTracker(): # detect markers from gray picture gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) - self.__markers_corners, self.__markers_ids, rejectedPoints = aruco.detectMarkers(gray, self.__aruco_dict, parameters = self.__aruco_param) + self.__markers_corners, self.__markers_ids, rejectedPoints = aruco.detectMarkers(gray, self.__aruco_dict.get_markers(), parameters = self.__aruco_param) # if all board markers are detected if self.get_markers_number() == expected_markers_number: diff --git a/src/argaze/utils/README.md b/src/argaze/utils/README.md index 0bc3216..461d82d 100644 --- a/src/argaze/utils/README.md +++ b/src/argaze/utils/README.md @@ -27,7 +27,7 @@ python ./src/argaze/utils/export_calibration_board.py 7 5 5 3 -o export - Calibrate Tobii Glasses Pro 2 camera (replace IP_ADDRESS) using a 7 columns and 5 rows calibration board with 5cm squares and 3cm markers inside. Then, export its optical parameters into an tobii_camera.json file: ``` -python ./src/argaze/utils/tobii_camera_calibration.py 7 5 5 3 -t IP_ADDRESS -o export/tobii_camera.json +python ./src/argaze/utils/calibrate_tobii_camera.py 7 5 5 3 -t IP_ADDRESS -o export/tobii_camera.json ``` - Display Tobii Glasses Pro 2 gaze and camera video stream (replace IP_ADDRESS) diff --git a/src/argaze/utils/calibrate_tobii_camera.py b/src/argaze/utils/calibrate_tobii_camera.py index 553632f..93751ba 100644 --- a/src/argaze/utils/calibrate_tobii_camera.py +++ b/src/argaze/utils/calibrate_tobii_camera.py @@ -58,8 +58,8 @@ def main(): frame_width = 0 frame_height = 0 - expected_markers_number = len(aruco_board.get_ids()) - expected_corners_number = (aruco_board.get_size()[0] - 1 ) * (aruco_board.get_size()[1] - 1) + expected_markers_number = aruco_board.get_markers_number() + expected_corners_number = aruco_board.get_corners_number() # capture loop try: -- cgit v1.1