加入基本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 random
from PySide6 import QtCore, QtWidgets, QtGui
import cv2
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):
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!")
self.text = QtWidgets.QLabel("Hello World",
alignment=QtCore.Qt.AlignCenter)
cvimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 把opencv 默认BGR转为通用的RGB
y, x = img.shape[:-1]
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)
self.layout.addWidget(self.text)
self.layout.addWidget(self.button)
def left(self):
pass
self.button.clicked.connect(self.magic)
@QtCore.Slot()
def magic(self):
self.text.setText(random.choice(self.hello))
if __name__ == "__main__":
app = QtWidgets.QApplication([])
widget = MyWidget()
widget.resize(800, 600)
widget.show()
sys.exit(app.exec())
if __name__ == '__main__':
app = QApplication(sys.argv)
win = MainWindow()
win.show()
app.exec()

View File

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