加入基本UI

This commit is contained in:
Fiber 2024-10-05 13:54:27 +08:00
parent 512517f62f
commit d1689b13a3
2 changed files with 94 additions and 28 deletions

View File

@ -1,32 +1,97 @@
import sys import sys
import random import cv2
from PySide6 import QtCore, QtWidgets, QtGui
class MyWidget(QtWidgets.QWidget): from core import Video, Mark
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
QMetaObject, QObject, QPoint, QRect,
QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QAction, QBrush, QColor, QConicalGradient,
QCursor, QFont, QFontDatabase, QGradient,
QIcon, QImage, QKeySequence, QLinearGradient,
QPainter, QPalette, QPixmap, QRadialGradient,
QTransform)
from PySide6.QtWidgets import (QApplication, QGraphicsView, QMainWindow, QMenu,
QMenuBar, QPushButton, QSizePolicy, QStatusBar, QGraphicsScene,
QTextBrowser, QWidget)
video_dir = "raw/video/王传林.mp4"
mark_dir = "raw/mark/ESD-Bleeding-标注.xlsx"
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(1173, 712)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.pushButton = QPushButton(self.centralwidget)
self.pushButton.setObjectName(u"pushButton")
self.pushButton.setGeometry(QRect(880, 400, 141, 81))
self.pushButton_2 = QPushButton(self.centralwidget)
self.pushButton_2.setObjectName(u"pushButton_2")
self.pushButton_2.setGeometry(QRect(1020, 400, 141, 81))
self.graphicsView = QGraphicsView(self.centralwidget)
self.graphicsView.setObjectName(u"graphicsView")
self.graphicsView.setGeometry(QRect(0, 0, 871, 641))
self.textBrowser = QTextBrowser(self.centralwidget)
self.textBrowser.setObjectName(u"textBrowser")
self.textBrowser.setGeometry(QRect(880, 80, 281, 291))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar")
self.menubar.setGeometry(QRect(0, 0, 1173, 33))
self.menu = QMenu(self.menubar)
self.menu.setObjectName(u"menu")
self.menu_2 = QMenu(self.menubar)
self.menu_2.setObjectName(u"menu_2")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QStatusBar(MainWindow)
self.statusbar.setObjectName(u"statusbar")
MainWindow.setStatusBar(self.statusbar)
self.menubar.addAction(self.menu.menuAction())
self.menubar.addAction(self.menu_2.menuAction())
self.retranslateUi(MainWindow)
QMetaObject.connectSlotsByName(MainWindow)
# setupUi
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
self.pushButton.setText(QCoreApplication.translate("MainWindow", u"Left", None))
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"Right", None))
self.menu.setTitle(QCoreApplication.translate("MainWindow", u"\u8f7d\u5165\u6570\u636e", None))
self.menu_2.setTitle(QCoreApplication.translate("MainWindow", u"\u6807\u7b7e\u68c0\u67e5", None))
# retranslateUi
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self): def __init__(self):
super().__init__() super(MainWindow, self).__init__()
self.setupUi(self)
self.pushButton.addAction(self.left())
self.scene = QGraphicsScene()
self.graphicsView.setScene(self.scene)
self.graphicsView.show()
self.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"] video = Video(video_dir)
img = video.read(3)
self.button = QtWidgets.QPushButton("Click me!") cvimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 把opencv 默认BGR转为通用的RGB
self.text = QtWidgets.QLabel("Hello World", y, x = img.shape[:-1]
alignment=QtCore.Qt.AlignCenter) frame = QImage(cvimg, x, y, QImage.Format_RGB888)
self.scene.clear() #先清空上次的残留
self.pix = QPixmap.fromImage(frame)
self.scene.addPixmap(self.pix)
self.layout = QtWidgets.QVBoxLayout(self) def left(self):
self.layout.addWidget(self.text) pass
self.layout.addWidget(self.button)
self.button.clicked.connect(self.magic) if __name__ == '__main__':
app = QApplication(sys.argv)
@QtCore.Slot() win = MainWindow()
def magic(self): win.show()
self.text.setText(random.choice(self.hello)) app.exec()
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec())

View File

@ -3,8 +3,7 @@ import cv2
import pandas as pd import pandas as pd
import re import re
video_dir = "raw/video/王传林.mp4"
mark_dir = "raw/mark/ESD-Bleeding-标注.xlsx"
interval = 30 interval = 30
def convert_video(videoname): def convert_video(videoname):
@ -34,7 +33,7 @@ class Video:
self.video = capture self.video = capture
else: else:
self.video = None self.video = None
def read_frame(self, frame_num): def read(self, frame_num):
cap = self.video cap = self.video
cap.set(cv2.CAP_PROP_POS_FRAMES, frame_num) cap.set(cv2.CAP_PROP_POS_FRAMES, frame_num)
ret, img=cap.read() ret, img=cap.read()
@ -61,6 +60,8 @@ class Mark:
if __name__ == "__main__": if __name__ == "__main__":
video_dir = "raw/video/王传林.mp4"
mark_dir = "raw/mark/ESD-Bleeding-标注.xlsx"
mark = Mark(mark_dir, "王传林") mark = Mark(mark_dir, "王传林")
frame, method = mark.read(1) frame, method = mark.read(1)
print(int(frame),method) print(int(frame),method)