refactored

This commit is contained in:
2025-11-28 19:18:14 +01:00
parent ca5ea81397
commit d64e24b2ff
4 changed files with 13 additions and 13 deletions
@@ -3,11 +3,11 @@ import math
import cv2 as cv import cv2 as cv
import numpy as np import numpy as np
from pathlib import Path from pathlib import Path
from utils import to_board_pose_euler from .utils import to_board_pose_euler
RESULTS_FOLDER = "results" RESULTS_FOLDER = "results"
class ArTagPose(abc.ABC): class BoardPose(abc.ABC):
detector: cv.aruco.ArucoDetector | cv.aruco.CharucoDetector = None detector: cv.aruco.ArucoDetector | cv.aruco.CharucoDetector = None
board: cv.aruco.GridBoard | cv.aruco.CharucoBoard = None board: cv.aruco.GridBoard | cv.aruco.CharucoBoard = None
mtx = None mtx = None
@@ -77,7 +77,7 @@ class ArTagPose(abc.ABC):
# Open camera # Open camera
cap = cv.VideoCapture(0) cap = cv.VideoCapture(0)
ArTagPose.cap_init(cap) BoardPose.cap_init(cap)
if not cap.isOpened(): if not cap.isOpened():
print("Cannot open camera") print("Cannot open camera")
@@ -1,7 +1,7 @@
import cv2 as cv import cv2 as cv
import numpy as np import numpy as np
from ar_tag_pose import ArTagPose from .board_pose import BoardPose
from aruco_types import ARUCO_DICT from .types import ARUCO_DICT
def factory(dict_type: int, board_size: cv.typing.Size, marker_length: float=100.0, marker_sep=10): def factory(dict_type: int, board_size: cv.typing.Size, marker_length: float=100.0, marker_sep=10):
aruco_dict = cv.aruco.getPredefinedDictionary(dict_type) aruco_dict = cv.aruco.getPredefinedDictionary(dict_type)
@@ -13,9 +13,9 @@ def factory(dict_type: int, board_size: cv.typing.Size, marker_length: float=100
return detector, board, name return detector, board, name
class ArTagPoseArucoBoard(ArTagPose): class BoardPoseAruco(BoardPose):
def __init__(self, dict_type: int, board_size: tuple[int, int]): def __init__(self, dict_type: int, board_size: tuple[int, int]):
ArTagPose.__init__(self) BoardPose.__init__(self)
self.board_size = board_size self.board_size = board_size
self.detector, self.board, self.name = factory(dict_type, board_size) self.detector, self.board, self.name = factory(dict_type, board_size)
@@ -84,7 +84,7 @@ class ArTagPoseArucoBoard(ArTagPose):
return pose, r_vec, t_vec return pose, r_vec, t_vec
def main(): def main():
pose = ArTagPoseArucoBoard(10, (5,5)) pose = BoardPoseAruco(10, (5, 5))
pose.board_image_generate(margin_length=10) pose.board_image_generate(margin_length=10)
pose.calibrate_load() pose.calibrate_load()
pose.process() pose.process()
@@ -1,7 +1,7 @@
import cv2 as cv import cv2 as cv
import numpy as np import numpy as np
from ar_tag_pose import ArTagPose from .board_pose import BoardPose
from aruco_types import ARUCO_DICT from .types import ARUCO_DICT
def factory(dict_type: int, board_size: cv.typing.Size, square_length: float = 5.0, marker_length: float = 3.0): def factory(dict_type: int, board_size: cv.typing.Size, square_length: float = 5.0, marker_length: float = 3.0):
aruco_dict = cv.aruco.getPredefinedDictionary(dict_type) aruco_dict = cv.aruco.getPredefinedDictionary(dict_type)
@@ -13,9 +13,9 @@ def factory(dict_type: int, board_size: cv.typing.Size, square_length: float = 5
return detector, board, name return detector, board, name
class ArTagPoseCharucoBoard(ArTagPose): class BoardPoseCharuco(BoardPose):
def __init__(self, dict_type: int, board_size: tuple[int, int]): def __init__(self, dict_type: int, board_size: tuple[int, int]):
ArTagPose.__init__(self) BoardPose.__init__(self)
self.board_size = board_size self.board_size = board_size
self.detector, self.board, self.name = factory(dict_type, board_size) self.detector, self.board, self.name = factory(dict_type, board_size)
@@ -82,7 +82,7 @@ class ArTagPoseCharucoBoard(ArTagPose):
return pose, r_vec, t_vec return pose, r_vec, t_vec
def main(): def main():
pose = ArTagPoseCharucoBoard(10, (6,7)) pose = BoardPoseCharuco(10, (6, 7))
pose.board_image_generate() pose.board_image_generate()
pose.calibrate_load() pose.calibrate_load()
pose.process() pose.process()