diff options
Diffstat (limited to 'src/argaze/ArUcoMarkers/ArUcoBoard.py')
-rw-r--r-- | src/argaze/ArUcoMarkers/ArUcoBoard.py | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/argaze/ArUcoMarkers/ArUcoBoard.py b/src/argaze/ArUcoMarkers/ArUcoBoard.py index e6772c4..5d2a39d 100644 --- a/src/argaze/ArUcoMarkers/ArUcoBoard.py +++ b/src/argaze/ArUcoMarkers/ArUcoBoard.py @@ -9,25 +9,31 @@ import cv2.aruco as aruco class ArUcoBoard(): """Calibration chess board with ArUco markers inside.""" - def __init__(self, dictionary: ArUcoMarkersDictionary.ArUcoMarkersDictionary | str, columns: int, rows: int, square_size: float, marker_size: float): + def __init__(self, columns: int, rows: int, square_size: float, marker_size: float, dictionary: ArUcoMarkersDictionary.ArUcoMarkersDictionary | str = None): """Create columns x rows chess board with ArUco markers at given size in centimeters.""" - # Handle dictionary str or instance - if type(dictionary) == str: - self.__dictionary = ArUcoMarkersDictionary.ArUcoMarkersDictionary(dictionary) - elif isinstance(dictionary, ArUcoMarkersDictionary.ArUcoMarkersDictionary): - self.__dictionary = dictionary - else: - raise ValueError(f'dictionary: {dictionary}') - # Store properties self.__columns = columns self.__rows = rows self.__square_size = square_size # in cm self.__marker_size = marker_size # in cm + # Handle dictionary str or instance + if dictionary != None: + + if type(dictionary) == str: + self.dictionary = ArUcoMarkersDictionary.ArUcoMarkersDictionary(dictionary) + elif isinstance(dictionary, ArUcoMarkersDictionary.ArUcoMarkersDictionary): + self.dictionary = dictionary + else: + raise ValueError(f'dictionary: {dictionary}') + + else: + + self.dictionary = ArUcoMarkersDictionary.ArUcoMarkersDictionary() + # Create board model - self.__board = aruco.CharucoBoard((self.__columns, self.__rows), self.__square_size/100., self.__marker_size/100., self.__dictionary.markers) + self.__board = aruco.CharucoBoard((self.__columns, self.__rows), self.__square_size/100., self.__marker_size/100., self.dictionary.markers) def __del__(self): pass |