From a0030f7cc4be954e45c05551f8be8f570587b767 Mon Sep 17 00:00:00 2001 From: Q Date: Sat, 16 Aug 2025 22:33:06 +0300 Subject: [PATCH] convert interp --- tsmark/__init__.py | 2 +- tsmark/video_annotator.py | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/tsmark/__init__.py b/tsmark/__init__.py index bdf355a..7ea9a7a 100644 --- a/tsmark/__init__.py +++ b/tsmark/__init__.py @@ -2,7 +2,7 @@ import argparse from tsmark.video_annotator import Marker -VERSION = "0.7.4" +VERSION = "0.7.5" def get_options(): diff --git a/tsmark/video_annotator.py b/tsmark/video_annotator.py index fa1eaea..47af9e1 100755 --- a/tsmark/video_annotator.py +++ b/tsmark/video_annotator.py @@ -446,6 +446,21 @@ class Marker: "age": None, } + def convert_interpolated_points(self): + + if self.point_click == 1 and self.point_index in self.points: + for nr in range(self.frames): + ip = self.get_interpolated_point(nr=nr) + if ip["type"] == "interp" and ip["visible"] == 1: + self.points[self.point_index][nr] = { + "x0": ip["x0"], + "y0": ip["y0"], + "x1": ip["x1"], + "y1": ip["y1"], + "visible": 1, + } + self.interpolate_points() + def modify_point(self, position, x, y): """position: tl topleft, br bottomright, c center""" if not self.point_index in self.points: @@ -783,9 +798,10 @@ class World: q or esc quit Bounding box editor: - p toggle bounding box drawing. follow with any key as index. + p toggle bounding box drawing. enter any key as index. o toggle object is occluded x toggle (delete) key frame + r convert interpolated points to points (no undo!) mouse left: set top-left corner of box mouse middle: set center of box mouse right: set lower right corner of box @@ -1276,7 +1292,8 @@ class World: self.toggle_point(self.nr) else: self.toggle_stamp() - + elif k & 0xFF == ord("r"): # convert interpolated points + self.convert_interpolated_points() elif k & 0xFF == ord("v"): self.show_info = not self.show_info elif k & 0xFF == ord("h"):