加入基本UI
This commit is contained in:
parent
512517f62f
commit
d1689b13a3
@ -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.hello = ["Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]
|
self.scene = QGraphicsScene()
|
||||||
|
self.graphicsView.setScene(self.scene)
|
||||||
|
self.graphicsView.show()
|
||||||
|
|
||||||
self.button = QtWidgets.QPushButton("Click me!")
|
video = Video(video_dir)
|
||||||
self.text = QtWidgets.QLabel("Hello World",
|
img = video.read(3)
|
||||||
alignment=QtCore.Qt.AlignCenter)
|
|
||||||
|
|
||||||
self.layout = QtWidgets.QVBoxLayout(self)
|
cvimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 把opencv 默认BGR转为通用的RGB
|
||||||
self.layout.addWidget(self.text)
|
y, x = img.shape[:-1]
|
||||||
self.layout.addWidget(self.button)
|
frame = QImage(cvimg, x, y, QImage.Format_RGB888)
|
||||||
|
self.scene.clear() #先清空上次的残留
|
||||||
|
self.pix = QPixmap.fromImage(frame)
|
||||||
|
self.scene.addPixmap(self.pix)
|
||||||
|
|
||||||
self.button.clicked.connect(self.magic)
|
def left(self):
|
||||||
|
pass
|
||||||
|
|
||||||
@QtCore.Slot()
|
if __name__ == '__main__':
|
||||||
def magic(self):
|
app = QApplication(sys.argv)
|
||||||
self.text.setText(random.choice(self.hello))
|
win = MainWindow()
|
||||||
|
win.show()
|
||||||
if __name__ == "__main__":
|
app.exec()
|
||||||
app = QtWidgets.QApplication([])
|
|
||||||
|
|
||||||
widget = MyWidget()
|
|
||||||
widget.resize(800, 600)
|
|
||||||
widget.show()
|
|
||||||
|
|
||||||
sys.exit(app.exec())
|
|
@ -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)
|
Loading…
x
Reference in New Issue
Block a user