Config: config\ddjx01.json
Stitcher initialized with config: {'min_area_frac': 0.01, 'max_area_frac': 0.05, 'max_aspect_ratio': 50, 'index': [1, 2, 3, 6, 7, 8, 11, 12, 13], 'margin': 10, 'nominal_ov_pos': 100, 'n': [3, 3], 'row_tol': 0.6, 'box_size': [250, 250]}
Contact3D initialized with config: {'min_contour_area': 3000, 'flow_threshold': 5, 'div_threshold': 0.05, 'expansion_threshold': 0.01, 'kernel_size': [5, 5], 'denoise_sigma': 12}
Connecting to video source...
OpenCV negotiated stream: FOURCC='....' (int=22, hex=0x00000016), size=1920x1080, fps=30.00, backend_id=1400
Detected 15 candidate boxes with bk_thresh=25
Sensor: valid for stitching
Feature stitch tile selection: ref_idx=7, moving_indices=[1, 2, 3, 6, 8, 11, 12, 13]
Latest-frame capture thread started.
Camera calib not found or not JSON: config\./config/ddjx01.npy
  Video source: 0
  Stitch mode: True
  Optical flow algorithm: dis
  Poisson backend: auto
  CuPy available: True
  OpenCL available: False

按键说明：Q 退出 | S 开始录像 | E 结束录像
Sensor disconnected.
