首页
/
每日頭條
/
科技
/
python的qt界面
python的qt界面
更新时间:2025-11-28 12:53:27

在做計算機視覺項目時,經常需要打開和顯示監控視頻畫面,對畫面進行分析處理。使用OpenCV打開攝像頭顯示視頻畫面,視頻可以參看:1.3 OpenCV打開本地攝像頭并顯示視頻畫面。

本文主要實現在PyQt窗體上顯示監控視頻畫面。視頻可以參看:8.2 Python-PyQt:窗體上顯示視頻圖像

一、使用Qt Designer創建窗體

窗體主要兩個元素:一個 Label 用來顯示圖像,一個Push Button 用來打開視頻頭。

窗體自适應布局,保存窗體文件:yolodet.ui,XML格式保存的。

要在Python中使用這個窗體文件,還需要把yolodet.ui文件編譯生成.py文件。在vscode中配置好PyQt後,打開ui文件的右鍵菜單,很方便把ui文件轉換成py文件。

python的qt界面(118.PythonPyQt窗體上顯示監控畫面)1

右鍵菜單

二、實現代碼

import sys import cv2 from PyQt5 import QtCore,QtGui,QtWidgets from Ui_yolodet import Ui_MainWindow class MainWindow(QtWidgets.QMainWindow,Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) self.btnopen.clicked.connect(self.Open) def Open(self): cap=cv2.VideoCapture(0) while cap.isOpened(): ret,frame=cap.read() #img=QtGui.QImage(frame.data,frame.shape[1],frame.shape[0],QtGui.QImage.Format_BGR888) #重載修複圖像顯示變形問題 img = QtGui.QImage(frame.data, frame.shape[1], frame.shape[0], frame.shape[1] * 3,QtGui.QImage.Format_BGR888) #設置label高度和寬度 self.lblimg.setFixedSize(frame.shape[1],frame.shape[0]) self.lblimg.setPixmap(QtGui.QPixmap.fromImage(img)) self.lblimg.setScaledContents(True) #自适應大小 QtWidgets.QApplication.processEvents() if __name__ == '__main__': app=QtWidgets.QApplication(sys.argv) mywin=MainWindow() mywin.setObjectName("Yolo3 Detect") mywin.show() sys.exit(app.exec_())

說明:

1、正常情況,使用下面代碼來生成QImage,可以顯示正常圖像,但有時會發現圖像會扭曲變形。

img=QtGui.QImage(frame.data,frame.shape[1],frame.shape[0],QtGui.QImage.Format_BGR888)

解決辦法:改成如下代碼。原因:QImage每行是按照sizeof(int)對齊的,如果不明确指定最後一個參數,即行字節數,則圖像會歪斜。增加第三個參數:frame.shape[1] * 3,

img = QtGui.QImage(frame.data, frame.shape[1], frame.shape[0], frame.shape[1] * 3,QtGui.QImage.Format_BGR888)

2、根據圖像的大小來設定Label的大小,以防止視頻畫面變形

#設置label高度和寬度 self.lblimg.setFixedSize(frame.shape[1],frame.shape[0])

三、運行效果

python的qt界面(118.PythonPyQt窗體上顯示監控畫面)2

運行效果:畫面顯示

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
蘋果手機相機的設置在什麼地方
蘋果手機相機的設置在什麼地方
我們都知道,蘋果手機和安卓手機有着不一樣的操作系統,那便是ios系統以及android系統,如果習慣使用安卓系統之後,來使用蘋果手機,會非常不适用。對于蘋果手機的相機設置,與安卓手機也有所不同,設置起來有些難度。蘋果手機相機設置在哪裡呢?有...
2025-11-28
系統門窗哪個款式最好用
系統門窗哪個款式最好用
什麼是系統門窗,這個問題抖音裡面吵得不可開交,可是作為消費者最終還是不明白,就更不用說區分系統門窗和斷橋鋁窗了,為什麼會這樣呢?今天我們就把這個商家和消費者放在一起分析,客觀地來講一下這個系統窗的問題,視頻有點長,建議點贊收藏。不知大家有沒...
2025-11-28
vivo微信聊天如何美顔
vivo微信聊天如何美顔
vivo微信聊天如何美顔?你知道嘛其實微信視頻聊天還可以開美顔噢,相信很多朋友都還不是很清楚下面小編為大家帶來了vivo微信視頻聊天開美顔的詳細方法,快叫上你小夥伴一起來看看吧,我來為大家科普一下關于vivo微信聊天如何美顔?下面希望有你要...
2025-11-28
羅永浩是離開錘子公司了嗎
羅永浩是離開錘子公司了嗎
IT之家3月17日消息,OPPO今日邀請了羅永浩、羅翔,和劉作虎進行了一場對話。slogan為“回歸本行,回顧初心,直面質疑,感受勇敢”。一開場,劉作虎就點出羅永浩回歸科技行業的話題,并表示對老羅這種“執着”的不解。錘子科技創始人羅永浩對此...
2025-11-28
弱電門禁系統安裝調試入門課程
弱電門禁系統安裝調試入門課程
門禁系統安裝是為了以預防損失、預防犯罪為主要目的,因此必須具有極高的可靠性。一套門禁隻需要一個磁力鎖和一個電源,一個讀卡器和按鈕就可以實現了。不像以前複雜一些需要控制器等,聯動控制等!一、門禁系統安裝與調試1、電源保證功率足夠,盡量使用線性...
2025-11-28
Copyright 2023-2025 - www.tftnews.com All Rights Reserved