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:
@@ -230,7 +230,13 @@ class MotionTracker:
|
|||||||
|
|
||||||
def from_dict(self, data: Dict):
|
def from_dict(self, data: Dict):
|
||||||
"""Load from dictionary for deserialization"""
|
"""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.tracking_enabled = data.get('tracking_enabled', False)
|
||||||
self.base_crop_rect = data.get('base_crop_rect', None)
|
self.base_crop_rect = data.get('base_crop_rect', None)
|
||||||
self.base_zoom_center = data.get('base_zoom_center', None)
|
self.base_zoom_center = data.get('base_zoom_center', None)
|
||||||
|
Reference in New Issue
Block a user