读取 with ui

This commit is contained in:
Fiber 2024-10-05 21:54:46 +08:00
parent d1689b13a3
commit 42a5b65af8
2 changed files with 42 additions and 6 deletions

View File

@ -34,7 +34,7 @@ class Ui_MainWindow(object):
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.graphicsView.setGeometry(QRect(0, 0, 871, 700))
self.textBrowser = QTextBrowser(self.centralwidget)
self.textBrowser.setObjectName(u"textBrowser")
self.textBrowser.setGeometry(QRect(880, 80, 281, 291))
@ -71,15 +71,25 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
self.pushButton.addAction(self.left())
self.pushButton.clicked.connect(self.left_frame)
self.pushButton_2.clicked.connect(self.right_frame)
self.scene = QGraphicsScene()
self.graphicsView.setScene(self.scene)
self.graphicsView.show()
video = Video(video_dir)
img = video.read(3)
self.video = Video(video_dir)
self.mark = Mark(mark_dir,"王传林")
self.max_mark = self.mark.max_frame()
self.now = 0
self.show_frame()
def show_frame(self):
frame_num, method_raw = self.mark.read(self.now)
img = self.video.read(frame_num)
cvimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 把opencv 默认BGR转为通用的RGB
y, x = img.shape[:-1]
frame = QImage(cvimg, x, y, QImage.Format_RGB888)
@ -87,8 +97,22 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.pix = QPixmap.fromImage(frame)
self.scene.addPixmap(self.pix)
def left(self):
pass
text = "帧数:"+"{:06d}".format(frame_num)+"\n操作:"
method = self.mark.get_method(method_raw)
for i in method:
text += "\n" + i
self.textBrowser.setText(text)
self.textBrowser.show()
def left_frame(self):
if self.now > 0:
self.now -= 1
self.show_frame()
def right_frame(self):
if self.now < self.max_mark - 1:
self.now += 1
self.show_frame()
if __name__ == '__main__':
app = QApplication(sys.argv)

View File

@ -42,6 +42,7 @@ class Video:
else:
return None
class Mark:
def __init__(self, mark_dir, sheet_name):
self.df = pd.read_excel(mark_dir, sheet_name=sheet_name)
@ -58,6 +59,17 @@ class Mark:
else:
return None
def max_frame(self):
return self.total_frame
def get_method(self, raw):
method = []
NaN = pd.isnull(raw)
for i in range(len(raw)):
if not NaN.iloc[i]:
method.append(self.method[i])
return method
if __name__ == "__main__":
video_dir = "raw/video/王传林.mp4"