2121 TR_MAX_CAMS ,
2222 TR_UNUSED ,
2323)
24+ from ._native_compat import get_multimedia_par , get_num_cams
2425from .imgcoord import img_coord
2526from .orientation import point_position
2627from .parameters import ControlPar , SequencePar , TrackPar , TrackParTuple , VolumePar , convert_track_par_to_tuple
@@ -427,11 +428,12 @@ def searchquader(
427428 mins = np .array ([tpar .dvxmin , tpar .dvymin , tpar .dvzmin ])
428429 maxes = np .array ([tpar .dvxmax , tpar .dvymax , tpar .dvzmax ])
429430
431+ num_cams = get_num_cams (cpar )
430432 quader = np .zeros ((8 , 3 ))
431- xr = np .zeros (cpar . num_cams )
432- xl = np .zeros (cpar . num_cams )
433- yd = np .zeros (cpar . num_cams )
434- yu = np .zeros (cpar . num_cams )
433+ xr = np .zeros (num_cams )
434+ xl = np .zeros (num_cams )
435+ yd = np .zeros (num_cams )
436+ yu = np .zeros (num_cams )
435437
436438 for pt in range (8 ):
437439 quader [pt ] = point .copy ()
@@ -444,7 +446,7 @@ def searchquader(
444446 # print(f" pt {pt} {quader[pt]}")
445447
446448 # calculation of search area in each camera
447- for i in range (cpar . num_cams ):
449+ for i in range (num_cams ):
448450 # initially large or small values
449451 xr [i ] = 0
450452 xl [i ] = cpar .imx
@@ -574,7 +576,7 @@ def point_to_pixel(point: np.ndarray, cal: Calibration, cpar: ControlPar) -> np.
574576 # print(f"cal {cal}")
575577 # print(f"cpar.mm {cpar.mm}")
576578
577- x , y = img_coord (point , cal , cpar . mm )
579+ x , y = img_coord (point , cal , get_multimedia_par ( cpar ) )
578580 # print("img coord x, y", x, y)
579581 x , y = metric_to_pixel (x , y , cpar )
580582 # print("metric to pixel x, y", x, y)
@@ -648,18 +650,17 @@ def assess_new_position(
648650
649651 """
650652 # Output variables
651- targ_pos = np .array (
652- [[COORD_UNUSED , COORD_UNUSED ] for _ in range (run .cpar .num_cams )]
653- )
654- cand_inds = np .array ([[- 1 ] * MAX_CANDS for _ in range (run .cpar .num_cams )])
653+ num_cams = get_num_cams (run .cpar )
654+ targ_pos = np .array ([[COORD_UNUSED , COORD_UNUSED ] for _ in range (num_cams )])
655+ cand_inds = np .array ([[- 1 ] * MAX_CANDS for _ in range (num_cams )])
655656
656657 # Search rectangle limits
657658 left , right , up , down = ADD_PART , ADD_PART , ADD_PART , ADD_PART
658659
659- # for cam in range(run.cpar. num_cams):
660+ # for cam in range(num_cams):
660661 # targ_pos[cam] = [COORD_UNUSED, COORD_UNUSED]
661662
662- for cam in range (run . cpar . num_cams ):
663+ for cam in range (num_cams ):
663664 # Convert 3D search position to 2D pixel coordinates
664665 pixel = point_to_pixel (pos , run .cal [cam ], run .cpar )
665666 # print(f"pos {pos}")
@@ -686,7 +687,7 @@ def assess_new_position(
686687
687688 valid_cams = 0
688689
689- for cam in range (run . cpar . num_cams ):
690+ for cam in range (num_cams ):
690691 if (targ_pos [cam ][0 ] != COORD_UNUSED ) and (targ_pos [cam ][1 ] != COORD_UNUSED ):
691692 # Convert pixel coordinates to metric coordinates
692693 x , y = pixel_to_metric (targ_pos [cam ][0 ], targ_pos [cam ][1 ], run .cpar )
@@ -808,8 +809,9 @@ def trackcorr_c_loop(run_info, step):
808809 cpar = run_info .cpar
809810 curr_targets = fb .buf [1 ].targets
810811
811- v1 = np .zeros ((cpar .num_cams , 2 )) # volume center projection on cameras
812- v2 = np .zeros ((cpar .num_cams , 2 )) # volume center projection on cameras
812+ num_cams = get_num_cams (cpar )
813+ v1 = np .zeros ((num_cams , 2 )) # volume center projection on cameras
814+ v2 = np .zeros ((num_cams , 2 )) # volume center projection on cameras
813815
814816 # try to track correspondences from previous 0 - corp, variable h
815817 orig_parts = fb .buf [1 ].num_parts
@@ -936,7 +938,7 @@ def trackcorr_c_loop(run_info, step):
936938 if quali >= 2 :
937939 in_volume = 0 # inside volume
938940
939- dl , X [4 ] = point_position (v2 , cpar . num_cams , cpar . mm , cal )
941+ dl , X [4 ] = point_position (v2 , num_cams , get_multimedia_par ( cpar ) , cal )
940942
941943 # volume check
942944 if (
@@ -1006,7 +1008,7 @@ def trackcorr_c_loop(run_info, step):
10061008 if quali >= 2 :
10071009 X [3 ] = vec_copy (X [2 ])
10081010 in_volume = 0
1009- dl , X [3 ] = point_position (v2 , fb .num_cams , cpar . mm , cal )
1011+ dl , X [3 ] = point_position (v2 , fb .num_cams , get_multimedia_par ( cpar ) , cal )
10101012
10111013 # in volume check
10121014 if (
@@ -1210,7 +1212,7 @@ def trackback_c(run_info: TrackingRun):
12101212 # vec_copy(X[3], X[2])
12111213 in_volume = 0
12121214
1213- _ , X [3 ] = point_position (v2 , fb .num_cams , cpar . mm , cal )
1215+ _ , X [3 ] = point_position (v2 , fb .num_cams , get_multimedia_par ( cpar ) , cal )
12141216
12151217 # volume check
12161218 if (
0 commit comments