|
| 1 | +# coding=utf-8 |
| 2 | + |
| 3 | +""" |
| 4 | +Command line entry point for sksurgerystereorenderer application. |
| 5 | +""" |
| 6 | + |
| 7 | +import argparse |
| 8 | +from sksurgeryutils import __version__ |
| 9 | +from sksurgeryutils.ui.sksurgerystereorenderer_demo import run_demo |
| 10 | + |
| 11 | + |
| 12 | +def main(args=None): |
| 13 | + """ |
| 14 | + Entry point for sksurgerystereorenderer application. |
| 15 | + """ |
| 16 | + parser = argparse.ArgumentParser( |
| 17 | + description='sksurgerystereorenderer - Stereo augmented reality ' |
| 18 | + 'renderer with interactive model manipulation.') |
| 19 | + |
| 20 | + parser.add_argument("-li", "--left_intrinsics", |
| 21 | + required=True, |
| 22 | + type=str, |
| 23 | + help="File path to left camera 3x3 intrinsics matrix.") |
| 24 | + |
| 25 | + parser.add_argument("-ri", "--right_intrinsics", |
| 26 | + required=True, |
| 27 | + type=str, |
| 28 | + help="File path to right camera 3x3 intrinsics matrix.") |
| 29 | + |
| 30 | + parser.add_argument("-l2r", "--left_to_right", |
| 31 | + required=True, |
| 32 | + type=str, |
| 33 | + help="File path to 4x4 stereo left-to-right " |
| 34 | + "extrinsic matrix.") |
| 35 | + |
| 36 | + parser.add_argument("-m", "--models", |
| 37 | + required=True, |
| 38 | + type=str, |
| 39 | + help="Path to models .json configuration file.") |
| 40 | + |
| 41 | + parser.add_argument("-r", "--clipping_range", |
| 42 | + required=True, |
| 43 | + type=str, |
| 44 | + help="Near,far clipping range (e.g. '1,1000').") |
| 45 | + |
| 46 | + parser.add_argument("-lv", "--left_video", |
| 47 | + required=True, |
| 48 | + type=str, |
| 49 | + help="Left video source: integer device index, " |
| 50 | + "video file path, or static image (.png/.jpg).") |
| 51 | + |
| 52 | + parser.add_argument("-rv", "--right_video", |
| 53 | + required=True, |
| 54 | + type=str, |
| 55 | + help="Right video source: integer device index, " |
| 56 | + "video file path, or static image (.png/.jpg).") |
| 57 | + |
| 58 | + parser.add_argument("-m2w", "--model_to_world", |
| 59 | + required=False, |
| 60 | + default=None, |
| 61 | + type=str, |
| 62 | + help="File path to a 4x4 model-to-world matrix " |
| 63 | + "applied to all models on startup.") |
| 64 | + |
| 65 | + parser.add_argument("-c2w", "--camera_to_world", |
| 66 | + required=False, |
| 67 | + default=None, |
| 68 | + type=str, |
| 69 | + help="File path to a 4x4 camera-to-world matrix " |
| 70 | + "for the initial camera pose.") |
| 71 | + |
| 72 | + parser.add_argument("-s", "--stereo_mode", |
| 73 | + required=False, |
| 74 | + default="stacked", |
| 75 | + type=str, |
| 76 | + choices=["stacked", "interlaced"], |
| 77 | + help="Stereo display mode: 'stacked' (left=top, " |
| 78 | + "right=bottom) or 'interlaced'. " |
| 79 | + "Default: stacked.") |
| 80 | + |
| 81 | + version_string = __version__ |
| 82 | + friendly_version_string = version_string if version_string else 'unknown' |
| 83 | + parser.add_argument( |
| 84 | + "-v", "--version", |
| 85 | + action='version', |
| 86 | + version='sksurgerystereorenderer version ' |
| 87 | + + friendly_version_string) |
| 88 | + |
| 89 | + args = parser.parse_args(args) |
| 90 | + |
| 91 | + run_demo(args.left_intrinsics, |
| 92 | + args.right_intrinsics, |
| 93 | + args.left_to_right, |
| 94 | + args.models, |
| 95 | + args.clipping_range, |
| 96 | + args.left_video, |
| 97 | + args.right_video, |
| 98 | + args.model_to_world, |
| 99 | + args.camera_to_world, |
| 100 | + args.stereo_mode) |
0 commit comments