[tracks] improve size of controls, skeleton, fix enum use

This commit is contained in:
Jan Grewe 2025-02-06 10:46:32 +01:00
parent 373671d237
commit 2bc071c15d

View File

@ -11,7 +11,7 @@ from PySide6.QtWidgets import QSpinBox, QSpacerItem, QProgressBar, QSplitter, QG
from fixtracks.utils.reader import PickleLoader from fixtracks.utils.reader import PickleLoader
from fixtracks.utils.writer import PickleWriter from fixtracks.utils.writer import PickleWriter
from fixtracks.widgets.detectionview import DetectionView from fixtracks.widgets.detectionview import DetectionView, DetectionData
from fixtracks.widgets.detectiontimeline import DetectionTimeline from fixtracks.widgets.detectiontimeline import DetectionTimeline
from fixtracks.widgets.skeleton import SkeletonWidget from fixtracks.widgets.skeleton import SkeletonWidget
@ -385,11 +385,11 @@ class FixTracks(QWidget):
btnBox.addWidget(self._tasklabel) btnBox.addWidget(self._tasklabel)
btnBox.addWidget(self._progress_bar) btnBox.addWidget(self._progress_bar)
btnBox.addWidget(self._saveBtn) btnBox.addWidget(self._saveBtn)
cntrlBox = QHBoxLayout() cntrlBox = QHBoxLayout()
cntrlBox.addItem(QSpacerItem(100, 100, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)) cntrlBox.addItem(QSpacerItem(200, 100, QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Expanding))
cntrlBox.addWidget(self._controls_widget, stretch=1, alignment=Qt.AlignmentFlag.AlignCenter) cntrlBox.addWidget(self._controls_widget)
cntrlBox.addWidget(self._skeleton, stretch=1, alignment=Qt.AlignmentFlag.AlignCenter) cntrlBox.addWidget(self._skeleton)
vbox = QVBoxLayout() vbox = QVBoxLayout()
vbox.addLayout(timelinebox) vbox.addLayout(timelinebox)
vbox.addLayout(cntrlBox) vbox.addLayout(cntrlBox)
@ -570,15 +570,23 @@ class FixTracks(QWidget):
def on_detectionsSelected(self, detections): def on_detectionsSelected(self, detections):
logging.debug("Tracks: Detections selected") logging.debug("Tracks: Detections selected")
tracks = np.zeros(len(detections)) tracks = np.zeros(len(detections), dtype=int)
ids = np.zeros_like(tracks) ids = np.zeros_like(tracks)
coordinates = np.zeros((len(detections), )) frames = np.zeros_like(tracks)
coordinates = None
if len(detections) > 0:
c = detections[0].data(DetectionData.COORDINATES.value)
coordinates = np.zeros((len(detections), c.shape[0], c.shape[1]))
for i, d in enumerate(detections): for i, d in enumerate(detections):
tracks[i] = d.data(0) tracks[i] = d.data(DetectionData.TRACK_ID.value)
ids[i] = d.data(1) ids[i] = d.data(DetectionData.ID.value)
frames[i] = d.data(DetectionData.FRAME.value)
coordinates[i, :, :] = d.data(DetectionData.COORDINATES.value)
self._data.setUserSelection(ids) self._data.setUserSelection(ids)
self._controls_widget.setSelectedTracks(tracks) self._controls_widget.setSelectedTracks(tracks)
self._skeleton.clear()
self._skeleton.addSkeletons(coordinates, ids, QBrush(QColor(10, 255, 65, 255)))
self.update() self.update()
def moveWindow(self, stepsize): def moveWindow(self, stepsize):