save jsom project file

This commit is contained in:
2025-12-01 18:40:38 +01:00
parent 1829a4b785
commit 85902d5026
+26 -12
View File
@@ -5,6 +5,7 @@ import cv2 as cv
import numpy as np import numpy as np
import argparse import argparse
import mimetypes import mimetypes
import json
from pathlib import Path from pathlib import Path
from ar_tag_pose.utils import to_board_pose_euler from ar_tag_pose.utils import to_board_pose_euler
from detector_board import BoardDetector from detector_board import BoardDetector
@@ -213,28 +214,41 @@ def main():
ap.add_argument("-o", "--output", ap.add_argument("-o", "--output",
action='store_true', action='store_true',
help="Enable video output") help="Enable video output")
args = vars(ap.parse_args()) args = ap.parse_args()
var_args = vars(args)
# save project file
prj = {}
for arg in var_args:
value = getattr(args, arg)
prj[arg] = value
with open(f"{RESULTS_FOLDER}/{var_args["name"]}.json", 'w') as fp:
json.dump(prj, fp, indent=4)
# Create BoardDetector
msg_size = 3 msg_size = 3
board_detector = [] board_detector = []
bid_start = args["board_id"] bid_start = var_args["board_id"]
if "Aruco" in args["type"]: if "Aruco" in var_args["type"]:
for n in range(args["num_boards"]): for n in range(var_args["num_boards"]):
board_id = f"{bid_start+n:0{msg_size}d}" board_id = f"{bid_start+n:0{msg_size}d}"
det = BoardDetectorAruco(f"{args["name"]}-{n}", args["dict_type"], board_id, (args["board_width"], args["board_height"])) det = BoardDetectorAruco(f"{var_args["name"]}-{n}", var_args["dict_type"], board_id, (var_args["board_width"], var_args["board_height"]))
board_detector.append(det) board_detector.append(det)
elif "Charuco" in args["type"]: elif "Charuco" in var_args["type"]:
for n in range(args["num_boards"]): for n in range(var_args["num_boards"]):
board_id = f"{bid_start+n:0{msg_size}d}" board_id = f"{bid_start+n:0{msg_size}d}"
det = BoardDetectorCharuco(f"{args["name"]}-{n}", args["dict_type"], board_id, (args["board_width"], args["board_height"])) det = BoardDetectorCharuco(f"{var_args["name"]}-{n}", var_args["dict_type"], board_id, (var_args["board_width"], var_args["board_height"]))
board_detector.append(det) board_detector.append(det)
# Create output
out_file = None out_file = None
if args["output"]: if var_args["output"]:
out_file = f"{args["name"]}.mp4" out_file = f"{var_args["name"]}.mp4"
detector = Detector(args["source"], board_detector, out_file=out_file) # Create Detector app
detector.board_image_generate(margin_length=args["margin_length"]) detector = Detector(var_args["source"], board_detector, out_file=out_file)
detector.board_image_generate(margin_length=var_args["margin_length"])
detector.calibrate_load() detector.calibrate_load()
detector.process() detector.process()