Source code for sleap.gui.overlays.anchors

"""
Overlay for showing negative training sample anchors (currently unused).
"""
import attr

from PySide2 import QtGui

from sleap.gui.overlays.base import BaseOverlay
from sleap.gui.widgets.video import QtVideoPlayer
from sleap.io.dataset import Labels


[docs]@attr.s(auto_attribs=True) class NegativeAnchorOverlay(BaseOverlay): """Class to overlay of negative training sample anchors to video frame. Attributes: labels: The :class:`Labels` dataset from which to get overlay data. player: The video player in which to show overlay. """ labels: Labels = None _pen = QtGui.QPen(QtGui.QColor("red")) _line_len: int = 3
[docs] def add_to_scene(self, video, frame_idx): """Adds anchor markers as overlay on frame image.""" if self.labels is None: return if video not in self.labels.negative_anchors: return anchors = self.labels.negative_anchors[video] for idx, x, y in anchors: if frame_idx == idx: self._add(x, y)
def _add(self, x, y): self.player.scene.addLine( x - self._line_len, y - self._line_len, x + self._line_len, y + self._line_len, self._pen, ) self.player.scene.addLine( x + self._line_len, y - self._line_len, x - self._line_len, y + self._line_len, self._pen, )