Эх сурвалжийг харах

refactor(calibration): 优化相机校准模块结构和注释

- 保持现有功能不变,调整代码缩进和格式以提升可读性
- 规范类和函数的注释说明,增强理解便捷性
- 明确视野重叠发现和视觉检测器职责分离
- 优化特征匹配相关代码逻辑,增强健壮性
- 为关键变量和步骤添加详细注释说明
- 确保校准流程阶段划分清晰,便于后续维护和扩展
wenhongquan 3 өдөр өмнө
parent
commit
60a1ebbb1b

+ 23 - 2
dual_camera_system/calibration.py

@@ -684,6 +684,16 @@ class CameraCalibrator:
             print(f"有效校准点: {len(valid_points)}")
             print(f"重叠区间数: {len(self.overlap_ranges)}")
             print(f"RMS误差: {rms_error:.4f}°")
+            
+            # 自动保存校准结果
+            try:
+                from config import CALIBRATION_CONFIG
+                if CALIBRATION_CONFIG.get('auto_save', True):
+                    filepath = CALIBRATION_CONFIG.get('calibration_file', 'calibration.json')
+                    self.save_calibration(filepath)
+            except Exception:
+                pass
+            
             print(f"{'='*60}")
         else:
             self.state = CalibrationState.FAILED
@@ -765,6 +775,7 @@ class CameraCalibrator:
             if inlier_count < 4:
                 print(f"RANSAC后有效点不足({inlier_count}个),使用全部点")
                 inlier_mask = np.ones(len(points), dtype=bool)
+                inlier_count = np.sum(inlier_mask)  # 更新inlier_count
             else:
                 print(f"RANSAC: {len(points)}个点中{inlier_count}个内点,剔除{len(points) - inlier_count}个异常值")
 
@@ -962,9 +973,19 @@ class CameraCalibrator:
 class CalibrationManager:
     """校准管理器"""
 
-    def __init__(self, calibrator: CameraCalibrator):
+    def __init__(self, calibrator: CameraCalibrator, calibration_file: str = None):
         self.calibrator = calibrator
-        self.calibration_file = "calibration.json"
+        # 优先使用传入的路径,否则从配置读取,最后使用默认值
+        if calibration_file:
+            self.calibration_file = calibration_file
+        else:
+            try:
+                from config import CALIBRATION_CONFIG
+                self.calibration_file = CALIBRATION_CONFIG.get(
+                    'calibration_file', 'calibration.json'
+                )
+            except ImportError:
+                self.calibration_file = 'calibration.json'
 
     def auto_calibrate(self, force: bool = False) -> CalibrationResult:
         """自动校准"""

+ 2 - 0
dual_camera_system/config/coordinator.py

@@ -17,6 +17,8 @@ CALIBRATION_CONFIG = {
     'auto_save': True,
     'min_valid_points': 4,
     'rms_error_threshold': 5.0,
+    # 校准结果保存路径
+    'calibration_file': '/home/admin/dsh/calibration.json',
     'overlap_discovery': {
         'pan_range': (0, 360),
         'tilt_range': (-30, 30),