Python中如何利用Opencv打開視頻或圖像並用PyQt控制項顯示

2021-01-11 23設計

OpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows、Android和Mac OS作業系統上,

使用起來十分方便,把它與PyQt結合起來,就可以順利的操作視頻、圖像了。具體安裝請自行百度,這裡介紹使用方法。

一、python中opencv打開圖像方法:

import cv2

filename='dog.jpg'

img=cv2.imread(filename)

cv2.imshow('Main Window',img)

cv2.waitKey() #任意鍵退出

cv2.destroyAllWindows()

二、python中用opencv打開視頻頭的方法:

import cv2

cap=cv2.VideoCapture(0)

success, frame=cap.read()

while success and cv2.waitKey(1)==-1:

cv2.imshow("Main Window", frame)

success, frame=cap.read()

cap.release()

cv2.destroyAllWindows()

三、利用PyQt 的QLabel顯示視頻:

#藉助QTimer,不斷產生事件,顯示圖片

# -*- coding: utf-8 -*-

from PyQt5.QtCore import *

from PyQt5.QtWidgets import *

from PyQt5.QtGui import *

import cv2

from Ui_main import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):

def __init__(self, parent=None):

super(MainWindow, self).__init__(parent)

self.setupUi(self)

self.timer_camera = QTimer(self)

self.cap = cv2.VideoCapture(0)

self.timer_camera.timeout.connect(self.show_pic)

self.timer_camera.start(10)

def show_pic(self):

success, frame=self.cap.read()

if success:

show = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)

showImage = QImage(show.data, show.shape[1], show.shape[0], QImage.Format_RGB888)

self.label.setPixmap(QPixmap.fromImage(showImage))

self.timer_camera.start(10)

if __name__=='__main__':

import sys

app=QApplication(sys.argv)

window=MainWindow()

window.show()

sys.exit(app.exec_())

相關焦點

  • opencv-python獲取圖像:面向對象與面向過程
    這裡需要注意以下,opencv讀取圖片默認通道為BGR的格式,當在其他UI用戶界面顯示圖像時注意轉換一下通道順序,例如BGR轉換成RGB:Image1=cv2.cvtColor(image, cv2.COLOR_BGR2RGB)下面讀取一張圖片並顯示
  • 基於python+opencv的圖像目標區域自動提取
    5、提取面積最大的輪廓並用多邊形將輪廓包圍上面的代碼中,cv2.inRange函數處理後圖片後,調用cv2.imshow顯示處理後的二值化圖片:《美團機器學習實踐》_美團算法團隊.pdf《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼python就業班學習視頻,從入門到實戰項目2019最新《PyTorch自然語言處理》英、中文版PDF+源碼
  • 使用Python+OpenCV進行面部合成
    原文 http://www.learnopencv.com/face-morph-using-opencv-cpp-python/
  • 使用OpenCv和Dlib進行打哈欠檢測
    安裝OpenCv和Dlib庫OpenCv的安裝如下:pip install opencv-pythonDlib的安裝如下:pip install cmake>pip install dlib導入Opencv,Dlib和Numpy庫設置dat文件我們將.dat文件放置到工作目錄中,它是一個可以識別面部特徵並提供信息的模型。
  • 手把手:使用OpenCV進行面部合成— C++ / Python
    點擊視頻:一分鐘告訴你如何進行面部合成這篇教程將教大家如何用OpenCV做面部合成,把一張臉演變為另外一張臉。
  • python圖像處理-gif動圖
    圖片合成動圖導入os庫,利用listdir方法將lion文件夾中的圖片全部讀取出來,循環打開每一張圖片,接著將圖片對象添加到frames列表中,最後利用save方法,保存為一張動圖。動圖分解成一張張圖片先使用open方法打開動圖,接著使用ImageSequence將打開的圖片對象轉換成可迭代的圖片序列,通過for循環將圖片一張張保存到本地,名字可以自定義。
  • OpenCV-Python 光流|四十八
    目標在本章中,我們將了解光流的概念及其使用Lucas-Kanade方法的估計。我們將使用cv.calcOpticalFlowPyrLK()之類的函數來跟蹤視頻中的特徵點。光流光流是由物體或照相機的運動引起的兩個連續幀之間圖像物體的視運動的模式。它是2D向量場,其中每個向量都是位移向量,表示點從第一幀到第二幀的運動。考慮下面的圖片(圖片提供:Wikipedia關於Optical Flow的文章)。它顯示了一個球連續5幀運動。箭頭顯示其位移向量。
  • OpenCV黑魔法之隱身衣 | 附源碼
    在這篇文章中,我們將學習如何使用OpenCV中的簡單計算機視覺技術創建我們自己的「隱形衣」。文末會分享 C++和python的代碼。哈利波特的隱身衣效果那是哈利·波特在試他的隱形衣!事實上,你可以用一種叫做顏色檢測和分割的圖像處理技術來創造這種神奇的體驗。
  • 利用OpenCV建立視差圖像
    >點擊上方↑↑↑「OpenCV學堂」關注我來源
  • 利用Python做一個小姐姐詞雲跳舞視頻
    B站上的漂亮的小姐姐真的好多好多,利用 you-get 大法下載了一個 B 站上跳舞的小姐姐視頻,利用視頻中的彈幕來製作一個漂亮小姐姐詞雲跳舞視頻,一起來看看吧。二、實現思路1. you-get下載視頻pip install you-get -i http://pypi.douban.com/simple --trusted-host pypi.douban.com利用 you-get 下載 B 站視頻到本地    視頻連結:https://www.bilibili.com
  • Android上的YouTube應用要求用戶點擊全屏視頻以顯示控制項
    過去的幾個月中,Google在Android上針對YouTube應用發布了一些設計更改。其中包括一項用於在評論部分顯示頻道預覽的測試,一個新的「瀏覽」標籤以幫助用戶查找新視頻,訂閱供稿中的新過濾器以及一個用於將評論部分移動到視頻描述下方的UI更新。現在,根據Android Police的最新報告 ,YouTube添加了一種新手勢,可以幫助用戶快速退出全屏視頻。
  • 武大學生用Python敲出櫻花開放 | 附源碼
    相約武大官博,每天看不同地點的櫻花同時武大信管院的朱永春同學,用python敲出櫻花開放,引發熱搜。武大微博後來還開源了代碼:這樣我們也能在自己的電腦上實現櫻花開放全過程🌸圖中cv_2、cv_3、cv_4依次執行即可
  • 如何讓您的計算機認識坤坤?
    在學習過程中,我突發奇想,打算搞一個AAJ人臉識別程序。在幾天的學習和一下午的ctrl+c和ctrl+v後,我終於實現了這一功能——通過訓練10張左右AAJ同學提供的訓練照片(training-data),可以判斷測試圖片(test-data)是否為AAJ本人。
  • YouTube會檢測您正在觀看視頻的顯示類型
    教程: 如何在iPad Pro上觀看HDR電影就iPhone X和LG等生產的許多OLED電視機中使用的OLED顯示技術而言,要求最大亮度為540尼特,黑電平小於0.0005尼特,導致對比度至少為1,080,000
  • 從入門到入域之python+opencv提取sfz信息
    根據最後數字分割出來單獨顯示的效果,想到了一個適合於我代碼情況的簡單方法。建立一個標準號碼庫(利用上面自製模板數字分割後獲得),然後用每一個號碼圖片與庫中所有標準號碼圖片做相似度匹配,和哪一個模板相似度最高,則說明該圖片為哪一位號碼。在將模板號碼分割成功後,最關鍵的一步就是進行相似度匹配。
  • Python 圖像處理 OpenCV (15):圖像輪廓
    本篇文章是關於圖像處理輪廓方面的,下面開始正文,希望能幫到各位。Q:什麼是輪廓?A:輪廓是一系列相連的點組成的曲線,代表了物體的基本外形,相對於邊緣,輪廓是連續的,邊緣並不全部連續。在 OpenCV 中,輪廓提取函數 findContours() 實現的是 1985 年由一名叫做 Satoshi Suzuki 的人發表的一篇論文中的算法,如下:Satoshi Suzuki and others.
  • 初學者如何用「python爬蟲」技術抓取網頁數據?
    我們要做的是查找適合初學者的教科書或在線教程,並花費十多天的時間,您可以對python的基礎知識有三到四點了解,這時候你可以玩玩爬蟲了!2、為什麼要懂HTMLHTML是一種用於創建網頁的標記語言,該網頁嵌入了諸如文本和圖像之類的數據,這些數據可以被瀏覽器讀取並呈現為我們看到的網頁。這就是為什麼我們首先爬網HTML,然後解析數據的原因,因為數據隱藏在HTML中。
  • 利用python做串口通訊上位機
    趁著閒暇,把自己好多年前制定的Flag重新回憶一遍,爭取在剩下的幾天假期中一一搞定!記得之前在很多項目開發中,都需要通過上位機來控制ECU或者通過上位機來讀取ECU中的數據。其中上位機和ECU的通訊接口有串口,LIN或者CAN總線。串口作為一種低成本而又簡單的通訊方式,仍然有很多客戶在使用。
  • Python 自動提取電影中所有人臉
    1.準備我們使用ffmpeg提取視頻中的圖片,它的安裝方法如下:1.1 (1)windows安裝ffmpeg :1.http://ffmpeg.zeranoe.com/builds/,點擊 download build 按鈕