Fix deserialization of tracking points in MotionTracker: convert string keys to integers for proper handling of frame numbers. This ensures accurate data loading from dictionaries during the deserialization process.

This commit is contained in:
2025-09-16 14:30:48 +02:00
parent f111571601
commit 0b007b572e

View File

@@ -230,7 +230,13 @@ class MotionTracker:
def from_dict(self, data: Dict):
"""Load from dictionary for deserialization"""
self.tracking_points = data.get('tracking_points', {})
# Convert string keys back to integers for tracking_points
tracking_points_data = data.get('tracking_points', {})
self.tracking_points = {}
for frame_str, points in tracking_points_data.items():
frame_num = int(frame_str) # Convert string key to integer
self.tracking_points[frame_num] = points
self.tracking_enabled = data.get('tracking_enabled', False)
self.base_crop_rect = data.get('base_crop_rect', None)
self.base_zoom_center = data.get('base_zoom_center', None)