操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    一、引言

    在-中顯示圖像時調用的是一個單獨的窗口,有時我們需要將這些圖像顯示在pyqt的圖形化界面上,這樣就可以將整個圖像顯示與pyqt圖形化界面進行整合。但格式的圖像和pyqt格式的圖像并不同qq空間視頻播放器代碼,這就需要進行轉換。

    二、背景知識-的圖像是bgr格式的qq空間視頻播放器代碼,而pyqt圖像格式是rgb格式的,二者需要轉換;為了快速轉換,圖像必須基于內存進行操作;pyqt的類可以從內存數組構建;可以讀取視頻圖像,使用可以實現休眠特定時長而不影響系統消息處理。

    關于pyqt和之間的圖像轉換請參考《-中圖像顏色空間轉換》。

    qqq空間克隆 qq空間代碼獲取器_qq空間視頻播放器代碼_qq空間視頻播放

    三、案例

    下面的案例讀取一個視頻文件的圖像進行顯示,如果再疊加一個音頻播放的功能,就實現了一個視頻播放器。

    3.1、設計圖形化界面

    qq空間視頻播放_qq空間視頻播放器代碼_qqq空間克隆 qq空間代碼獲取器

    該圖形界面非常簡單,包含了一個僅有“”的菜單和對應工具欄,一個名為的標簽對象用于顯示圖像(藍色標記部分)。使用pyuic生成的界面對象代碼如下:

    from pyqt5 import qtcore, qtgui, qtwidgets   class ui_mainwindow(object):     def setupui(self, mainwindow):         mainwindow.setobjectname("mainwindow")         mainwindow.resize(625, 430)         self.centralwidget = qtwidgets.qwidget(mainwindow)         self.centralwidget.setobjectname("centralwidget")         self.imgdisp = qtwidgets.qlabel(self.centralwidget)         self.imgdisp.setgeometry(qtcore.qrect(0, 0, 54, 12))         self.imgdisp.setobjectname("imgdisp")         mainwindow.setcentralwidget(self.centralwidget)         self.menubar = qtwidgets.qmenubar(mainwindow)         self.menubar.setgeometry(qtcore.qrect(0, 0, 625, 17))         self.menubar.setobjectname("menubar")         self.menushowimg = qtwidgets.qmenu(self.menubar)         self.menushowimg.setobjectname("menushowimg")         mainwindow.setmenubar(self.menubar)         self.statusbar = qtwidgets.qstatusbar(mainwindow)         self.statusbar.setobjectname("statusbar")         mainwindow.setstatusbar(self.statusbar)         self.toolbar = qtwidgets.qtoolbar(mainwindow)         self.toolbar.setobjectname("toolbar")         mainwindow.addtoolbar(qtcore.qt.toptoolbararea, self.toolbar)         self.actionshowimg = qtwidgets.qaction(mainwindow)         self.actionshowimg.setobjectname("actionshowimg")         self.menushowimg.addaction(self.actionshowimg)         self.menubar.addaction(self.menushowimg.menuaction())         self.toolbar.addaction(self.actionshowimg)          self.retranslateui(mainwindow)         qtcore.qmetaobject.connectslotsbyname(mainwindow)      def retranslateui(self, mainwindow):         _translate = qtcore.qcoreapplication.translate         mainwindow.setwindowtitle(_translate("mainwindow", "mainwindow"))         self.imgdisp.settext(_translate("mainwindow", "."))         self.menushowimg.settitle(_translate("mainwindow", "menu"))         self.toolbar.setwindowtitle(_translate("mainwindow", "toolbar"))         self.actionshowimg.settext(_translate("mainwindow", "showimg")) 

    qq空間視頻播放_qq空間視頻播放器代碼_qqq空間克隆 qq空間代碼獲取器

    3.2、主程序

    import cv2,sys from pyqt5 import qtgui,qtwidgets,qtcore import mainwin  def cvimgtoqtimg(cvimg): #定義opencv圖像轉pyqt圖像的函數     qtimgbuf = cv2.cvtcolor(cvimg,  cv2.color_bgr2bgra)      qtimg = qtgui.qimage(qtimgbuf.data, qtimgbuf.shape[1], qtimgbuf.shape[0], qtgui.qimage.format_rgb32)          return qtimg    class mainwin(qtwidgets.qmainwindow,mainwin.ui_mainwindow):     def __init__(self):         super().__init__()         self.setupui(self)         self.bclose = false          self.actionshowimg.triggered.connect(self.playvideofile) #建立菜單點擊的信號與方法playvideofile連接      def playvideofile(self): #播放影片         cap = cv2.videocapture(r'f:videomydream.mp4') #打開影片         fps = 24         if not cap.isopened():             print("cannot open video file")             exit()          while not self.bclose:             ret, frame = cap.read() #逐幀讀取影片             if not ret:                 if frame is none:                     print("the video has end.")                 else:                     print("read video error!")                 break              qtimg = cvimgtoqtimg(frame)  #將幀數據轉換為pyqt圖像格式             self.imgdisp.setpixmap(qtgui.qpixmap.fromimage(qtimg)) #在imgdisp顯示圖像             size = qtimg.size()              self.imgdisp.resize(size)#根據幀大小調整標簽大小             self.imgdisp.show() #刷新界面             cv2.waitkey(int(1000/fps)) #休眠一會,確保每秒播放fps幀          # 完成所有操作后,釋放捕獲器         cap.release()   if __name__=='__main__':     app = qtwidgets.qapplication(sys.argv)     w = mainwin()     w.show()     sys.exit(app.exec_()) 

    注意:

    qq空間視頻播放_qq空間視頻播放器代碼_qqq空間克隆 qq空間代碼獲取器

    教程分享qt視頻播放器代碼(vs下的qt視頻播放功能)的實現方法存在不足,相關完善方案請見《-圖像轉換為pyqt圖像的變形及花屏問題研究》。

    3.3、運行程序初始界面

    qqq空間克隆 qq空間代碼獲取器_qq空間視頻播放器代碼_qq空間視頻播放

    點擊,開始播放視頻:

    關于pyqt的使用請參考付費專欄《使用pyqt開發圖形界面應用》,專欄文件目錄《使用pyqt開發圖形界面應用專欄目錄》。

    也可以參考免費專欄《pyqt入門知識》,專欄文件目錄《使用pyqt進行圖形界面程序開發文章目錄》。

    需要了解更多教程分享qt視頻播放器代碼(vs下的qt視頻播放功能),都可以關注教程分享欄目—234IT()

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有