Ejemplo n.º 1
0
    def __init__(self, parent):
        super(VideoRender, self).__init__()
        self.main_window = parent
        self.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter)
        self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.size_adjusted = False
        self.ratio = 1
        self.setAcceptDrops(True)

        # Config QGraphics objects
        self.scene = QtWidgets.QGraphicsScene(self)
        self.setScene(self.scene)

        # Frame
        self.frame = None
        self.scene_frame = QtWidgets.QGraphicsPixmapItem()

        # Current Detection Selection
        self.init_point = QtCore.QPoint()
        self.end_point = QtCore.QPoint()
        self.drawing = False
        self.current_selection = QtWidgets.QGraphicsRectItem()
        self.brush_current = QtGui.QBrush(QtGui.QColor(10, 10, 100, 120))

        # Detections
        self.detection = []
        self.detection_objects = []  # List of GraphicsRectItem objects
        self.brush_detection = QtGui.QBrush(QtGui.QColor(100, 10, 10, 120))

        self.init()
Ejemplo n.º 2
0
def convert_np(
        frame: np.ndarray,
        to: str = "qpixmap",
        scale: bool = True,
        input_bgr: bool = True) -> Union[qtg.QPixmap, qtw.QGraphicsPixmapItem]:
    # https://stackoverflow.com/questions/34232632/convert-python-opencv-image-numpy-array-to-pyqt-qpixmap-image
    if input_bgr:
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

    frame = np.require(frame, np.uint8, "C")
    y2, width, channel = frame.shape
    bytes_per_line = width * 3
    # XXX: For some reasons, we need to copy it here.
    #      If I do `frame = qtg.QPixmap.fromImage(frame.copy())`,
    #      we will still got bad result.
    frame = qtg.QImage(frame.data, width, y2, bytes_per_line,
                       qtg.QImage.Format_RGB888).copy()
    frame = qtg.QPixmap.fromImage(frame)
    if scale:
        frame = frame.scaled(width, y2)

    if to == "qpixmap":
        return frame
    elif to == "qpixmapitem":
        return qtw.QGraphicsPixmapItem(frame)
Ejemplo n.º 3
0
 def drawPointsOnImage(self):
     self.clear()
     image = self.image.copy()
     imw, imh = image.width(), image.height()
     result = QtGui.QPixmap(w=imw, h=imh)
     result.fill(QtCore.Qt.white)
     painter = QtGui.QPainter()
     painter.begin(image)
     painter.drawPixmap(0, 0, image)
     # pdb.set_trace()
     for row, data in self.pointEditor.pointsData.items():
         if data['color'] == '':
             color = QtCore.Qt.red
         else:
             color = self.pointEditor.colors[data['color']]
         size = data['size']
         brush = QtGui.QBrush(color)
         painter.setBrush(brush)
         painter.setPen(color)
         px = data['x']
         py = data['y']
         painter.drawEllipse(px, py, size, size)
     #
     painter.end()
     pixmapItem = QtWidgets.QGraphicsPixmapItem(image)
     self.addItem(pixmapItem)
Ejemplo n.º 4
0
    def setCVImage(self, cvimage):
        items = self.scene.items()
        if len(items) > 1:
            self.scene.removeItem(items[-1])

        self.scene.addItem(QtWidgets.QGraphicsPixmapItem(cv2pixmap(cvimage)))
        self.view.setScene(self.scene)
Ejemplo n.º 5
0
 def mousePressEvent(self, QMouseEvent):
     self.mousepixmap = QtWidgets.QGraphicsPixmapItem(
         '/Users/anjal/Desktop/Personal Projects/PythonProj/DijkstrasProj/mapicon3.png'
     )
     self.pos = QMouseEvent.pos()
     self.mousepixmap.setOffset(self.pos.x() - 48, self.pos.y() - 47)
     self.scene.addItem(self.mousepixmap)
     Application.AddDialogueBox(applic)
Ejemplo n.º 6
0
 def setImage(self, image):
     pixel = QtGui.QPixmap.fromImage(image)
     scene = QtWidgets.QGraphicsScene(self)
     photo = QtWidgets.QGraphicsPixmapItem()
     photo.setPixmap(pixel)
     scene.addItem(photo)
     self.setScene(scene)
     self.setGeometry(self.x(), self.y(), image.width(), image.height())
Ejemplo n.º 7
0
    def setPixmap(self, pixmap: QtGui.QPixmap):
        item_size = pixmap.copy().size()
        view_size = self.size()
        num_layer = len(self._scene.items())
        if num_layer:
            self._scene.removeItem(self._underlay)
            self._scene.removeItem(self._overlay)
        self._underlay = QtWidgets.QGraphicsPixmapItem(pixmap)
        if self._overlay is None:
            empty_pixmap = QtGui.QPixmap(item_size)
            empty_pixmap.fill(QtCore.Qt.transparent)
            self._overlay = QtWidgets.QGraphicsPixmapItem(empty_pixmap)

        move_x = (view_size.width() - item_size.width()) / 2.
        move_y = (view_size.height() - item_size.height()) / 2.

        self._scene.addItem(self._underlay)
        self._scene.addItem(self._overlay)
Ejemplo n.º 8
0
    def __init__(self, parent=None):
        super(Main, self).__init__(parent)
        self.scene = QtWidgets.QGraphicsScene(self)
        self.setScene(self.scene)

        self.image = QtGui.QImage(
            "/Users/anjal/Desktop/Personal Projects/PythonProj/DijkstrasProj/map.jpg"
        )
        self.locpixmap = QtGui.QPixmap(self.image)
        self.pixmapItem = QtWidgets.QGraphicsPixmapItem(self.locpixmap)
        self.scene.addItem(self.pixmapItem)
 def __init__(self, parent):
     super(VAT_QGraphicsView, self).__init__(parent)
     self._zoom = 0
     self._empty = True
     self._scene = QtWidgets.QGraphicsScene(self)
     self._photo = QtWidgets.QGraphicsPixmapItem()
     self._scene.addItem(self._photo)
     self.setScene(self._scene)
     self.setTransformationAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
     self.setResizeAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
     self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
     self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
     self.setBackgroundBrush(QtGui.QBrush(QtGui.QColor(255, 255, 255)))
Ejemplo n.º 10
0
 def __init__(self, name='node', parent=None):
     super(NodeItem, self).__init__(name, parent)
     pixmap = QtGui.QPixmap(ICON_NODE_BASE)
     pixmap = pixmap.scaledToHeight(NODE_ICON_SIZE,
                                    QtCore.Qt.SmoothTransformation)
     self._properties['icon'] = ICON_NODE_BASE
     self._icon_item = QtWidgets.QGraphicsPixmapItem(pixmap, self)
     self._text_item = QtWidgets.QGraphicsTextItem(self.name, self)
     self._x_item = XDisabledItem(self, 'node disabled')
     self._input_text_items = {}
     self._output_text_items = {}
     self._input_items = []
     self._output_items = []
     self._widgets = OrderedDict()
Ejemplo n.º 11
0
 def __init__(self, parent):
     super(ViewerWidget, self).__init__(parent)
     self._zoom = 0
     self._empty = True
     self._scene = QtWidgets.QGraphicsScene(self)
     self._image = QtWidgets.QGraphicsPixmapItem()
     self._scene.addItem(self._image)
     self.rawImage = None
     self.setScene(self._scene)
     self.setTransformationAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
     self.setResizeAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
     self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
     self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
     self.setBackgroundBrush(QtGui.QBrush(QtGui.QColor(53, 53, 53)))
     self.setFrameShape(QtWidgets.QFrame.NoFrame)
     self.setAcceptDrops(True)
Ejemplo n.º 12
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1000, 800)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(10, 10, 990, 790))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.graphicsView = QtWidgets.QGraphicsView(self.verticalLayoutWidget)
        self.graphicsView.setObjectName("graphicsView")
        self.verticalLayout.addWidget(self.graphicsView)
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.graphicsScene = QtWidgets.QGraphicsScene()
        self.graphicsScene.mousePressEvent = self.mouse_clicked
        self.graphicsView.setScene(self.graphicsScene)

        self.timer = QtCore.QTimer()
        self.timer.timeout.connect(self.tick_event)

        self.pixmaps = []
        for i in range(PIC_NUMS):
            img = QtGui.QImage(PATH + str(i) + POSTFIX)
            self.pixmaps.append(QtGui.QPixmap.fromImage(img))

        self.pic = QtWidgets.QGraphicsPixmapItem(self.pixmaps[0])
        self.pic.setPos(0, 0)
        self.graphicsScene.addItem(self.pic)

        self.frameNum = 0
        self.frameDist = FRAME_DISTANCE

        self.picDest = QtCore.QPointF(0, 0)
        self.curPos = QtCore.QPointF(0, 0)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Ejemplo n.º 13
0
    def draw_crossline(self, pos_x, pos_y):
        min_x, min_y, width, height = self.get_overlay_pos()
        self._scene.removeItem(self._overlay)

        overlay = self._overlay.pixmap()
        overlay.fill(QtCore.Qt.transparent)
        painter = QtGui.QPainter(overlay)
        pen = QtGui.QPen()
        pen.setColor(QtCore.Qt.gray)
        pen.setWidth(1)
        painter.setPen(pen)
        painter.drawLine(pos_x, min_y, pos_x, min_y)
        painter.drawLine(min_x, pos_y, min_x, pos_y)
        painter.end()

        self._overlay.setPixmap(overlay)
        self._overlay = QtWidgets.QGraphicsPixmapItem(overlay)
        self._scene.addItem(self._overlay)
        self._scene.update()
Ejemplo n.º 14
0
    def __init__(self, tab_data=None, parent=None):
        # create scene first
        # self.parent = parent
        self.graphics_scene = QtWidgets.QGraphicsScene()
        self.graphics_scene.setSceneRect(0, 0, 1, 1)
        # pass scene to the QGraphicsView's constructor method
        super(GraphicsView, self).__init__(self.graphics_scene, parent)
        self.setAlignment(QtCore.Qt.AlignTop | QtCore.Qt.AlignLeft)
        self.setRenderHints(QtGui.QPainter.Antialiasing
                            | QtGui.QPainter.SmoothPixmapTransform)

        # format = QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)
        # self.setViewport(QtOpenGL.QGLWidget(format))
        self.setDragMode(self.RubberBandDrag)
        self.background = QtWidgets.QGraphicsPixmapItem(None)
        self.graphics_scene.addItem(self.background)
        self.tab_data = tab_data
        if self.tab_data.pxm_background is not None:
            self.change_background(self.tab_data.pxm_background)
Ejemplo n.º 15
0
    def __init__(self, parent):
        super(PhotoViewer, self).__init__(parent)
        self._zoom = 0
        self._zoom_in_factor = 1.15
        self._zoom_out_factor = 1/self._zoom_in_factor
        self._empty = True
        self._scene = Qw.QGraphicsScene(self)
        self._photo = Qw.QGraphicsPixmapItem()
        self._photo.setTransformationMode(
            Qc.Qt.TransformationMode.SmoothTransformation)
        self._scene.addItem(self._photo)
        self.setScene(self._scene)
        self.setTransformationAnchor(Qw.QGraphicsView.AnchorUnderMouse)
        self.setResizeAnchor(Qw.QGraphicsView.AnchorUnderMouse)
        self.setVerticalScrollBarPolicy(Qc.Qt.ScrollBarAlwaysOff)
        self.setHorizontalScrollBarPolicy(Qc.Qt.ScrollBarAlwaysOff)
        self.setBackgroundBrush(Qg.QBrush(Qg.QColor(30, 30, 30)))
        self.setFrameShape(Qw.QFrame.NoFrame)

        self.pixmap = Qg.QPixmap()
Ejemplo n.º 16
0
    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self._track = True
        self._pos = None

        self.item = QtWidgets.QGraphicsPixmapItem()
        self.item.setTransformationMode(QtCore.Qt.SmoothTransformation)
        self.item.setShapeMode(QtWidgets.QGraphicsPixmapItem.MaskShape)

        self.setScene(QtWidgets.QGraphicsScene(parent=self))

        self.scene().addItem(self.item)

        self.setAlignment(QtCore.Qt.AlignCenter)
        self.setBackgroundBrush(QtGui.QColor(0, 0, 0, 0))
        self.setInteractive(True)
        self.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag)

        self.setRenderHint(QtGui.QPainter.Antialiasing, True)
        self.setRenderHint(QtGui.QPainter.SmoothPixmapTransform, True)

        self.setMouseTracking(True)
Ejemplo n.º 17
0
 def update_frame(self):
     """"Update the frame and all the detection squares"""
     self.scene.clear()
     # Display image/frame
     if self.frame:
         self.scene_frame = QtWidgets.QGraphicsPixmapItem(self.frame)
         self.scene.addItem(self.scene_frame)
         self.fitInView(self.scene_frame)
     # Draw new detection square
     if self.drawing:
         self.current_selection = QtWidgets.QGraphicsRectItem(
             QtCore.QRect(self.init_point, self.end_point))
         self.current_selection.setBrush(self.brush_current)
         self.scene.addItem(self.current_selection)
     # Detect all objects according to the Track List
     self.detection_objects = []
     for element in self.detection:
         d = CustomWidget.GraphicsRectItem(element.rect(self.ratio))
         d.setBrush(self.brush_detection)
         d.set_edit_mode(self.main_window.controller.edit_mode)
         self.scene.addItem(d)
         self.detection_objects.append(d)
Ejemplo n.º 18
0
    def __init__(self,
                 videoFile: Union[str, os.PathLike] = None,
                 *args,
                 **kwargs):
        super().__init__(*args, **kwargs)

        # self.videoView = QtWidgets.QGraphicsView()
        self.scene = ClickableScene(self)  # QtWidgets.QGraphicsScene(self)
        # self.scene = CroppingOverlay(parent=self)
        self._photo = QtWidgets.QGraphicsPixmapItem()
        self.scene.addItem(self._photo)

        # self.videoView.setScene(self.scene)
        self.setScene(self.scene)

        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.sizePolicy().hasHeightForWidth())
        self.setSizePolicy(sizePolicy)
        self.setMinimumSize(QtCore.QSize(640, 480))
        # self.setObjectName("videoView")

        self.vid = None

        if videoFile is not None:
            self.initialize_video(videoFile)
            self.update()
        self.setStyleSheet("background:transparent;")
        self.setMouseTracking(True)

        # for pan/zoom
        self.resize_on_each_frame = True
        self.grabGesture(Qt.PinchGesture)
        self.setResizeAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
Ejemplo n.º 19
0
    def __init__(self, pix):
        super(Pixmap, self).__init__()

        self.pixmap_item = QtWidgets.QGraphicsPixmapItem(pix)
        self.pixmap_item.setCacheMode(
            QtWidgets.QGraphicsItem.DeviceCoordinateCache)
Ejemplo n.º 20
0
 def drawPixmapImage(self):
     image = self.image.copy()
     self.clear()
     pixmapItem = QtWidgets.QGraphicsPixmapItem(image)
     self.addItem(pixmapItem)
Ejemplo n.º 21
0
 def __init__(self, parent=None):
     super(Ball, self).__init__(parent)
     self.pixmap_item = QtWidgets.QGraphicsPixmapItem(
         QtGui.QPixmap("ball.png"))
Ejemplo n.º 22
0
 def set_pixmap(self, pixmap_path):
     pixmap = QtGui.QPixmap(pixmap_path)
     pixmap_item = QtWidgets.QGraphicsPixmapItem(pixmap)
     pixmap_item.setPos(-455, -500)
     pixmap_item.setScale(1.)
     self.scene.addItem(pixmap_item)
Ejemplo n.º 23
0
    def __init__(self, project):
        QtWidgets.QMainWindow.__init__(self)
        Ui_Sentence.__init__(self)
        self.setupUi(self)

        self.threadpool = QtCore.QThreadPool()

        self.actionNew.triggered.connect(self.new)
        self.actionOpen.triggered.connect(self.open)
        self.actionSave_as.triggered.connect(self.save_as)
        self.actionSave.triggered.connect(self.save)
        self.actionExport.triggered.connect(self.export_all)
        self.actionExport_selection.triggered.connect(self.export_selection)
        self.actionQuit.triggered.connect(self.quit)
        self.actionPreview_current.triggered.connect(self.preview_current)
        self.actionPreview_all.triggered.connect(self.complete_preview)

        self.actionPrevious_Combo.triggered.connect(self.previous_combo)
        self.actionNext_Combo.triggered.connect(self.next_combo)

        self.actionAdd_segment.triggered.connect(self.add_sentence)
        self.actionAdd_Segment_Above.triggered.connect(self.add_sentence_above)
        self.actionAdd_Segment_Below.triggered.connect(self.add_sentence_below)
        self.actionRemove_Segment_s.triggered.connect(self.remove_sentence)

        self.graphicsView = QtWidgets.QGraphicsView()
        self.video_layout.addWidget(self.graphicsView)
        self.graphicsView.setScene(QtWidgets.QGraphicsScene())
        self.pixmap = QtWidgets.QGraphicsPixmapItem()
        self.graphicsView.scene().addItem(self.pixmap)

        self.open_project(project)

        self.actionUndo.triggered.connect(
            self.segment_model.command_stack.undo)
        self.actionRedo.triggered.connect(
            self.segment_model.command_stack.redo)

        self.segment_model.command_stack.canUndoChanged.connect(
            self.actionUndo.setEnabled)
        self.segment_model.command_stack.canRedoChanged.connect(
            self.actionRedo.setEnabled)
        self.segment_model.command_stack.cleanChanged.connect(
            self.stackCleanChanged)

        import delegate.SpinBoxDelegate as spinbox_delegate
        self.tableView.setItemDelegateForColumn(
            Columns.combo_index.value,
            spinbox_delegate.SpinBoxDelegate(self.tableView))

        self.tableView.setColumnHidden(Columns.analyzing.value, True)

        # self.tableView.indexesMoved.connect(self.table_index_change)
        self.tableView.currentChanged = self.table_index_change
        self.tableView.selectionModel().selectionChanged.connect(
            self.selection_change)
        self.segment_model.dataChanged.connect(self.data_changed)

        self.tableView.horizontalHeader().setSectionResizeMode(
            0, QHeaderView.Stretch)
        self.tableView.horizontalHeader().setSectionResizeMode(
            1, QHeaderView.ResizeToContents)

        self.pushButton_preview.clicked.connect(self.complete_preview)
        self.pushButton_add_sentence.clicked.connect(self.add_sentence)
        self.pushButton_remove_sentence.clicked.connect(self.remove_sentence)
        self.preview_checkBox.clicked.connect(self.set_loop)

        self.previewer = None
        self.threadpool = QtCore.QThreadPool()

        self.analyze_worker_pool = AnalyzeWorkerPool(self.segment_model,
                                                     self.threadpool)

        self.show_warning_message = True

        self.preview_loop = False
Ejemplo n.º 24
0
    def __init__(self, parent=None):
        super(MainUI, self).__init__()

        self.layers = []
        self.invalited = False
        self.auto_update = True

        self.setWindowTitle("VRoid Eye Generator")
        self.imgBase = Image.open(
            os.path.join(os.path.dirname(sys.argv[0]), "data", "base.png"))
        hbox = QtWidgets.QHBoxLayout()
        self.vbox = QtWidgets.QVBoxLayout()
        hbox2 = QtWidgets.QHBoxLayout()
        self.btnNew = QtWidgets.QPushButton("New")
        hbox2.addWidget(self.btnNew)
        self.btnNew.clicked.connect(self.newEye)
        self.btnOpen = QtWidgets.QPushButton("Open")
        self.btnOpen.clicked.connect(self.openEye)
        hbox2.addWidget(self.btnOpen)
        self.btnSave = QtWidgets.QPushButton("Save As")
        self.btnSave.clicked.connect(self.saveEye)
        hbox2.addWidget(self.btnSave)
        self.vbox.addLayout(hbox2)

        self.lstLayer = QtWidgets.QListWidget()
        self.lstLayer.currentRowChanged[int].connect(self.layerChanged)
        self.lstLayer.setFixedHeight(400)
        self.vbox.addWidget(self.lstLayer)

        self.cmbPane = QtWidgets.QComboBox()
        self.cmbPane.addItem("Fill")
        self.cmbPane.addItem("Linear")
        hbox2 = QtWidgets.QHBoxLayout()
        hbox2.addWidget(self.cmbPane)
        self.btnAdd = QtWidgets.QPushButton("Add")
        self.btnAdd.clicked.connect(self.addLayer)
        hbox2.addWidget(self.btnAdd)
        self.vbox.addLayout(hbox2)

        self.btnRem = QtWidgets.QPushButton("Remove")
        self.btnRem.clicked.connect(self.removeLayer)
        self.vbox.addWidget(self.btnRem)

        self.btnDup = QtWidgets.QPushButton("Duplicate")
        self.btnDup.clicked.connect(self.dupeLayer)
        self.vbox.addWidget(self.btnDup)

        self.btnUp = QtWidgets.QPushButton("move Up")
        self.btnUp.clicked.connect(self.upLayer)
        self.vbox.addWidget(self.btnUp)

        self.btnDown = QtWidgets.QPushButton("move Down")
        self.btnDown.clicked.connect(self.downLayer)
        self.vbox.addWidget(self.btnDown)

        self.btnExport = QtWidgets.QPushButton("Export")
        self.vbox.addWidget(self.btnExport)
        self.btnExport.clicked.connect(self.exportEye)

        hbox.addLayout(self.vbox)

        self.gvMain = QtWidgets.QGraphicsView()
        hbox.addWidget(self.gvMain)
        self.gvScene = QtWidgets.QGraphicsScene()
        self.gvMain.setScene(self.gvScene)
        self.items = []
        self.items.append(QtWidgets.QGraphicsPixmapItem())
        self.gvScene.addItem(self.items[0])
        qim = ImageQt(self.imgBase)
        pix = QtGui.QPixmap.fromImage(qim).copy()
        self.items[0].setPixmap(pix)
        self.setLayout(hbox)

        self.vbox = QtWidgets.QVBoxLayout()
        hbox.addLayout(self.vbox)

        self.addLayer()

        self.imgExport = None
        self.invalited = True
        self.updateBase()