Exemple #1
0
    def SaveOptions(self):
        """ Save Options """
        # Magnifier Glass #
        # Shape Type
        if self.rB_Square_m.isChecked():
            self.settings.setValue(self.NameSpace + "/Options/magnifier/shape",
                                   0)  # Square
        else:
            self.settings.setValue(self.NameSpace + "/Options/magnifier/shape",
                                   1)  # Circle

        self.settings.setValue(self.NameSpace + "/Options/magnifier/size",
                               self.sl_Size.value())
        self.settings.setValue(self.NameSpace + "/Options/magnifier/factor",
                               self.sb_factor.value())

        # Drawings #

        self.settings.setValue(
            self.NameSpace + "/Options/drawings/polygons/width",
            self.poly_width.value())
        self.settings.setValue(
            self.NameSpace + "/Options/drawings/polygons/pen",
            self.poly_pen.color())
        self.settings.setValue(
            self.NameSpace + "/Options/drawings/polygons/brush",
            self.poly_brush.color())

        self.settings.setValue(
            self.NameSpace + "/Options/drawings/points/width",
            self.point_width.value())
        self.settings.setValue(self.NameSpace + "/Options/drawings/points/pen",
                               self.point_pen.color())

        self.settings.setValue(
            self.NameSpace + "/Options/drawings/lines/width",
            self.lines_width.value())
        self.settings.setValue(self.NameSpace + "/Options/drawings/lines/pen",
                               self.lines_pen.color())

        self.settings.setValue(
            self.NameSpace + "/Options/drawings/measures/width",
            self.measures_width.value(),
        )
        self.settings.setValue(
            self.NameSpace + "/Options/drawings/measures/pen",
            self.measures_pen.color())
        self.settings.setValue(
            self.NameSpace + "/Options/drawings/measures/brush",
            self.measures_brush.color(),
        )

        draw.setValues(self)

        # UpdateStylesDrawLayers(self.NameSpace)

        self.close()
        return
Exemple #2
0
    def __init__(self):
        """ Contructor """
        QDialog.__init__(self)
        self.setupUi(self)
        self.settings = QSettings()
        self.NameSpace = getNameSpace()

        self.sl_Size.enterEvent = self.showSizeTip
        draw.setValues(self)
Exemple #3
0
 def resizeEvent(self, _):
     """
     @type _: QMouseEvent
     @param _:
     @return:
     """
     self.surface.updateVideoRect()
     self.update()
     # Magnifier Glass
     if self._interaction.magnifier and not self.dragPos.isNull():
         draw.drawMagnifierOnVideo(self, self.dragPos, self.currentFrame(), self.painter)
Exemple #4
0
    def __init__(self, iface, parent=None):
        super().__init__(parent)
        self.setupUi(self)
        self.parent = parent
        self.iface = iface
        self._PlayerDlg = None
        self.isStreaming = False
        self.meta_reader = {}
        self.initialPt = {}
        self.pass_time = 500
        #self.intervall = 1000
        #self.notify_int = 3000

        self.VManager.viewport().installEventFilter(self)

        # Context Menu
        self.VManager.customContextMenuRequested.connect(self.__context_menu)
        self.removeAct = QAction(
            QIcon(":/imgFMV/images/mActionDeleteSelected.svg"),
            QCoreApplication.translate("ManagerDock", "Remove from list"),
            self,
            triggered=self.remove)

        self.VManager.setColumnWidth(1, 150)
        self.VManager.setColumnWidth(2, 80)
        self.VManager.setColumnWidth(3, 300)
        self.VManager.setColumnWidth(4, 300)
        self.VManager.verticalHeader().setDefaultAlignment(Qt.AlignHCenter)
        self.VManager.hideColumn(0)

        # Get Video Manager List
        VideoList = getVideoManagerList()
        for load_id in VideoList:
            filename = s.value(getNameSpace() + "/Manager_List/" + load_id)
            _, name = os.path.split(filename)

            folder = getVideoFolder(filename)
            klv_folder = os.path.join(folder, "klv")
            exist = os.path.exists(klv_folder)
            if exist:
                self.AddFileRowToManager(name, filename, load_id, exist,
                                         klv_folder)
            else:
                self.AddFileRowToManager(name, filename, load_id)

        draw.setValues()
Exemple #5
0
    def paintEvent(self, event):
        ''' Paint Event '''
        self.gt = GetGCPGeoTransform()

        self.painter = QPainter(self)
        self.painter.setRenderHint(QPainter.HighQualityAntialiasing)

        if (self.surface.isActive()):
            videoRect = self.surface.videoRect()
            if not videoRect.contains(event.rect()):
                region = event.region()
                region.subtracted(QRegion(videoRect))
                brush = self.palette().window()
                for rect in region.rects():
                    self.painter.fillRect(rect, brush)

            try:
                self.painter = self.surface.paint(self.painter)
            except Exception:
                None
        else:
            self.painter.fillRect(event.rect(), self.palette().window())
        try:
            SetImageSize(self.surface.currentFrame.width(),
                         self.surface.currentFrame.height())
        except Exception:
            None

        # Draw On Video
        draw.drawOnVideo(self.drawPtPos, self.drawLines, self.drawPolygon,
                         self.drawRuler, self.drawCesure, self.painter,
                         self.surface, self.gt)

        # Magnifier Glass
        if self.zoomed and self._interaction.magnifier:
            draw.drawMagnifierOnVideo(self.width(), self.height(),
                                      self.maskPixmap, self.dragPos,
                                      self.zoomPixmap, self.surface,
                                      self.painter, self.offset)

        self.painter.end()
        return
Exemple #6
0
    def __init__(self, iface, parent=None, fmv=None):
        super().__init__(parent)
        self.setupUi(self)

        self.parent = parent
        self.fmv = fmv
        self.iface = iface
        self._PlayerDlg = None
        self.meta_reader = []
        self.initialPt = []
        self.pass_time = 250
        self.buf_interval = 2000
        self.update_interval = 2000
        self.loading = False
        self.playlist = QMediaPlaylist()
        self.VManager.viewport().installEventFilter(self)

        # Context Menu
        self.VManager.customContextMenuRequested.connect(self.__context_menu)
        self.removeAct = QAction(
            QIcon(":/imgFMV/images/mActionDeleteSelected.svg"),
            QCoreApplication.translate("ManagerDock", "Remove from list"),
            self,
            triggered=self.remove,
        )

        self.VManager.setColumnWidth(1, 250)
        self.VManager.setColumnWidth(2, 140)
        self.VManager.setColumnWidth(3, 600)
        self.VManager.setColumnWidth(4, 600)
        self.VManager.setColumnWidth(5, 130)
        self.VManager.verticalHeader().setDefaultAlignment(Qt.AlignHCenter)
        self.VManager.hideColumn(0)

        self.videoPlayable = []
        self.videoIsStreaming = []
        self.dtm_path = parser["GENERAL"]["DTM_file"]
        draw.setValues()
        self.setAcceptDrops(True)
Exemple #7
0
    def paintEvent(self, event):
        """
        @type event: QPaintEvent
        @param event:
        @return:
        """
        if not self.surface.isActive():
            return

        self.painter = QPainter(self)
        self.painter.setRenderHint(QPainter.HighQualityAntialiasing)

        region = event.region()
        self.painter.fillRect(region.boundingRect(), self.brush)  # Background painter color

        try:
            self.surface.paint(self.painter)
            SetImageSize(self.currentFrame().width(),
                         self.currentFrame().height())
        except Exception:
            None

        # Prevent draw on video if not started or finished
        if self.parent.player.position() == 0:
            self.painter.end()
            return

        self.gt = GetGCPGeoTransform()

        # Draw On Video
        draw.drawOnVideo(self.drawPtPos, self.drawLines, self.drawPolygon,
                         self.drawMeasureDistance, self.drawMeasureArea, self.drawCesure, self.painter, self.surface, self.gt)

        # Draw On Video Object tracking test
        if self._interaction.objectTracking and self._isinit:
            frame = convertQImageToMat(self.currentFrame())
            offset = self.surface.videoRect()
            # Update tracker
            result = resize(frame, (offset.width(), offset.height()))
            ok, bbox = self.tracker.update(result)
            # Draw bounding box
            if ok:
                # check negative values
                x = bbox[0] + offset.x()
                y = bbox[1] + offset.y()
                if vut.IsPointOnScreen(x, y, self.surface):
                    self.painter.setPen(self.blue_Pen)
                    self.painter.drawRect(x, y, bbox[2], bbox[3])

                    # Get Track object center
                    xc = x + (bbox[2] / 2)
                    yc = y + (bbox[3] / 2)
                    p = QPoint(xc, yc)
                    Longitude, Latitude, _ = vut.GetPointCommonCoords(
                        p, self.surface)
                    # Draw Rubber Band on canvas
                    self.Track_Canvas_RubberBand.addPoint(QgsPointXY(Longitude, Latitude))

            else:
                self._isinit = False
                del self.tracker

        # Magnifier Glass
        if self._interaction.magnifier and not self.dragPos.isNull():
            draw.drawMagnifierOnVideo(self, self.dragPos, self.currentFrame(), self.painter)

        # Stamp On Video
        if self._interaction.stamp:
            draw.drawStampOnVideo(self, self.painter)

        self.painter.end()
        return