From cfc6a1988f031ed6db67df6e6abb53c793dc3024 Mon Sep 17 00:00:00 2001 From: birkholz-cubert Date: Fri, 27 Jun 2025 13:52:06 +0200 Subject: [PATCH 1/2] Added example code to show how to load a .cu3c calibration file --- EX05_recordSingleImages.py | 22 ++++++++++++++-------- EX05_recordSingleImages_async.py | 22 ++++++++++++++-------- EX06_recordVideo.py | 26 ++++++++++++++++---------- EX06_recordVideo_async.py | 26 ++++++++++++++++---------- 4 files changed, 60 insertions(+), 36 deletions(-) diff --git a/EX05_recordSingleImages.py b/EX05_recordSingleImages.py index 5ad2c90..a4006e7 100644 --- a/EX05_recordSingleImages.py +++ b/EX05_recordSingleImages.py @@ -8,18 +8,23 @@ def run_example_recordSingleImage( - userSettingsDir, - factoryDir, - recDir, - exposure, - nrImgs): + userSettingsDir: str, + factoryDir: Path, + recDir: str, + exposure: int, + nrImgs: int): print("loading user settings...") cuvis.init(userSettingsDir) cuvis.set_log_level("info") print( "loading calibration, processing and acquisition context (factory)...") - calibration = cuvis.Calibration(factoryDir) + if (factoryDir.is_dir()): + calibration = cuvis.Calibration(factoryDir) + elif (factoryDir.suffix == '.cu3c'): + print("using .cu3c file as calibration instead of factory dir...") + calibFile = cuvis.SessionFile(factoryDir) + calibration = cuvis.Calibration(calibFile) processingContext = cuvis.ProcessingContext(calibration) acquisitionContext = cuvis.AcquisitionContext(calibration) @@ -85,7 +90,8 @@ def run_example_recordSingleImage( if userSettingsDir.strip().lower() in ["", "default"]: userSettingsDir = loc_settings - factoryDir = input("Factory directory (default: {}): ".format(loc_factory)) + factoryDir = input( + "Factory directory (default: {}) or .cu3c file: ".format(loc_factory)) if factoryDir.strip().lower() in ["", "default"]: factoryDir = loc_factory @@ -105,5 +111,5 @@ def run_example_recordSingleImage( nrImgs = loc_nimgs nrImgs = int(nrImgs) - run_example_recordSingleImage(str(userSettingsDir), str(factoryDir), str(recDir), exposure, + run_example_recordSingleImage(str(userSettingsDir), Path(factoryDir), str(recDir), exposure, nrImgs) diff --git a/EX05_recordSingleImages_async.py b/EX05_recordSingleImages_async.py index b7af5c9..9321eb9 100644 --- a/EX05_recordSingleImages_async.py +++ b/EX05_recordSingleImages_async.py @@ -10,18 +10,23 @@ async def run_example_recordSingleImage( - userSettingsDir, - factoryDir, - recDir, - exposure, - nrImgs): + userSettingsDir: str, + factoryDir: Path, + recDir: str, + exposure: int, + nrImgs: int): print("loading user settings...") cuvis.init(userSettingsDir) cuvis.set_log_level("info") print( "loading calibration, processing and acquisition context (factory)...") - calibration = cuvis.Calibration(factoryDir) + if (factoryDir.is_dir()): + calibration = cuvis.Calibration(factoryDir) + elif (factoryDir.suffix == '.cu3c'): + print("using .cu3c file as calibration instead of factory dir...") + calibFile = cuvis.SessionFile(factoryDir) + calibration = cuvis.Calibration(calibFile) processingContext = cuvis.ProcessingContext(calibration) acquisitionContext = cuvis.AcquisitionContext(calibration) @@ -84,7 +89,8 @@ async def run_example_recordSingleImage( if userSettingsDir.strip().lower() in ["", "default"]: userSettingsDir = loc_settings - factoryDir = input("Factory directory (default: {}): ".format(loc_factory)) + factoryDir = input( + "Factory directory (default: {}) or .cu3c file: ".format(loc_factory)) if factoryDir.strip().lower() in ["", "default"]: factoryDir = loc_factory @@ -104,5 +110,5 @@ async def run_example_recordSingleImage( nrImgs = loc_nimgs nrImgs = int(nrImgs) - a.run(run_example_recordSingleImage(str(userSettingsDir), str(factoryDir), str(recDir), exposure, + a.run(run_example_recordSingleImage(str(userSettingsDir), Path(factoryDir), str(recDir), exposure, nrImgs)) diff --git a/EX06_recordVideo.py b/EX06_recordVideo.py index 1822fd6..33bc687 100644 --- a/EX06_recordVideo.py +++ b/EX06_recordVideo.py @@ -7,18 +7,23 @@ import cuvis -def run_example_recordVideo(userSettingsDir, - factoryDir, - recDir, - exposure, - autoExp, - fps): +def run_example_recordVideo(userSettingsDir: str, + factoryDir: Path, + recDir: str, + exposure: int, + autoExp: bool, + fps: float): print("loading user settings...") cuvis.init(userSettingsDir) cuvis.set_log_level("info") print("loading calibration (factory)...") - calibration = cuvis.Calibration(factoryDir) + if (factoryDir.is_dir()): + calibration = cuvis.Calibration(factoryDir) + elif (factoryDir.suffix == '.cu3c'): + print("using .cu3c file as calibration instead of factory dir...") + calibFile = cuvis.SessionFile(factoryDir) + calibration = cuvis.Calibration(calibFile) print("loading acquisition context...") acquisitionContext = cuvis.AcquisitionContext(calibration) @@ -131,7 +136,8 @@ def run_example_recordVideo(userSettingsDir, if userSettingsDir.strip().lower() in ["", "default"]: userSettingsDir = loc_settings - factoryDir = input("Factory directory (default: {}): ".format(loc_factory)) + factoryDir = input( + "Factory directory (default: {}) or .cu3c file: ".format(loc_factory)) if factoryDir.strip().lower() in ["", "default"]: factoryDir = loc_factory @@ -156,7 +162,7 @@ def run_example_recordVideo(userSettingsDir, "Target frames per second (fps) (default: {}): ".format(loc_fps)) if fps.strip().lower() in ["", "default"]: fps = loc_fps - fps = int(fps) + fps = float(fps) - run_example_recordVideo(str(userSettingsDir), str(factoryDir), str(recDir), exposure, + run_example_recordVideo(str(userSettingsDir), Path(factoryDir), str(recDir), exposure, autoExp, fps) diff --git a/EX06_recordVideo_async.py b/EX06_recordVideo_async.py index c16b824..0db228b 100644 --- a/EX06_recordVideo_async.py +++ b/EX06_recordVideo_async.py @@ -18,18 +18,23 @@ async def worker_collect_mesu_task(workerContainer: cuvis.WorkerResult): workerContainer.mesu.session_info.sequence_number)) -async def run_example_recordVideo(userSettingsDir, - factoryDir, - recDir, - exposure, - autoExp, - fps): +async def run_example_recordVideo(userSettingsDir: str, + factoryDir: Path, + recDir: str, + exposure: int, + autoExp: bool, + fps: float): print("loading user settings...") cuvis.init(userSettingsDir) cuvis.set_log_level("info") print("loading calibration (factory)...") - calibration = cuvis.Calibration(factoryDir) + if (factoryDir.is_dir()): + calibration = cuvis.Calibration(factoryDir) + elif (factoryDir.suffix == '.cu3c'): + print("using .cu3c file as calibration instead of factory dir...") + calibFile = cuvis.SessionFile(factoryDir) + calibration = cuvis.Calibration(calibFile) print("loading acquisition context...") acquisitionContext = cuvis.AcquisitionContext(calibration) @@ -127,7 +132,8 @@ async def run_example_recordVideo(userSettingsDir, if userSettingsDir.strip().lower() in ["", "default"]: userSettingsDir = loc_settings - factoryDir = input("Factory directory (default: {}): ".format(loc_factory)) + factoryDir = input( + "Factory directory (default: {}) or .cu3c file: ".format(loc_factory)) if factoryDir.strip().lower() in ["", "default"]: factoryDir = loc_factory @@ -152,7 +158,7 @@ async def run_example_recordVideo(userSettingsDir, "Target frames per second (fps) (default: {}): ".format(loc_fps)) if fps.strip().lower() in ["", "default"]: fps = loc_fps - fps = int(fps) + fps = float(fps) - a.run(run_example_recordVideo(str(userSettingsDir), str(factoryDir), str(recDir), exposure, + a.run(run_example_recordVideo(str(userSettingsDir), Path(factoryDir), str(recDir), exposure, autoExp, fps)) From eec7fdc85e98c7abf6b1818ce5ebde76be2f6f57 Mon Sep 17 00:00:00 2001 From: birkholz-cubert Date: Mon, 30 Jun 2025 10:16:10 +0200 Subject: [PATCH 2/2] added error handling --- EX05_recordSingleImages.py | 2 ++ EX05_recordSingleImages_async.py | 2 ++ EX06_recordVideo.py | 2 ++ EX06_recordVideo_async.py | 2 ++ 4 files changed, 8 insertions(+) diff --git a/EX05_recordSingleImages.py b/EX05_recordSingleImages.py index a4006e7..c9fdfd1 100644 --- a/EX05_recordSingleImages.py +++ b/EX05_recordSingleImages.py @@ -25,6 +25,8 @@ def run_example_recordSingleImage( print("using .cu3c file as calibration instead of factory dir...") calibFile = cuvis.SessionFile(factoryDir) calibration = cuvis.Calibration(calibFile) + else: + raise ValueError('Unrecognized file format') processingContext = cuvis.ProcessingContext(calibration) acquisitionContext = cuvis.AcquisitionContext(calibration) diff --git a/EX05_recordSingleImages_async.py b/EX05_recordSingleImages_async.py index 9321eb9..25786b4 100644 --- a/EX05_recordSingleImages_async.py +++ b/EX05_recordSingleImages_async.py @@ -27,6 +27,8 @@ async def run_example_recordSingleImage( print("using .cu3c file as calibration instead of factory dir...") calibFile = cuvis.SessionFile(factoryDir) calibration = cuvis.Calibration(calibFile) + else: + raise ValueError('Unrecognized file format') processingContext = cuvis.ProcessingContext(calibration) acquisitionContext = cuvis.AcquisitionContext(calibration) diff --git a/EX06_recordVideo.py b/EX06_recordVideo.py index 33bc687..1a84390 100644 --- a/EX06_recordVideo.py +++ b/EX06_recordVideo.py @@ -24,6 +24,8 @@ def run_example_recordVideo(userSettingsDir: str, print("using .cu3c file as calibration instead of factory dir...") calibFile = cuvis.SessionFile(factoryDir) calibration = cuvis.Calibration(calibFile) + else: + raise ValueError('Unrecognized file format') print("loading acquisition context...") acquisitionContext = cuvis.AcquisitionContext(calibration) diff --git a/EX06_recordVideo_async.py b/EX06_recordVideo_async.py index 0db228b..5da3399 100644 --- a/EX06_recordVideo_async.py +++ b/EX06_recordVideo_async.py @@ -35,6 +35,8 @@ async def run_example_recordVideo(userSettingsDir: str, print("using .cu3c file as calibration instead of factory dir...") calibFile = cuvis.SessionFile(factoryDir) calibration = cuvis.Calibration(calibFile) + else: + raise ValueError('Unrecognized file format') print("loading acquisition context...") acquisitionContext = cuvis.AcquisitionContext(calibration)