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()
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)
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)
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)
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)
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())
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)
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)))
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()
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)
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)
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()
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)
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()
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)
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)
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)
def __init__(self, pix): super(Pixmap, self).__init__() self.pixmap_item = QtWidgets.QGraphicsPixmapItem(pix) self.pixmap_item.setCacheMode( QtWidgets.QGraphicsItem.DeviceCoordinateCache)
def drawPixmapImage(self): image = self.image.copy() self.clear() pixmapItem = QtWidgets.QGraphicsPixmapItem(image) self.addItem(pixmapItem)
def __init__(self, parent=None): super(Ball, self).__init__(parent) self.pixmap_item = QtWidgets.QGraphicsPixmapItem( QtGui.QPixmap("ball.png"))
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)
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
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()