最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python OpenCV獲取視頻的方法

 更新時間:2018年02月28日 10:02:40   作者:大鵬1987  
本篇文章主要介紹了Python OpenCV獲取視頻的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

之前有文章,使用Android平臺的OpenCV接入了視頻,控制的目標(biāo)是手機(jī)的攝像頭,這是OpenCV的好處,使用OpenCV可以使用跨平臺的接口實(shí)現(xiàn)相同的功能,減少了平臺間移植的困難。正如本文后面,將使用類似的接口,從筆記本的攝像頭獲取視頻,所以,嘗試本文代碼需要有一臺有攝像頭的電腦。

不過,需要說明的的是,OpenCV的強(qiáng)項(xiàng)在于圖像相關(guān)的處理,而不是視頻的編解碼,所以,不要使用OpenCV做多余的事情,我們使用OpenCV接入視頻或者圖片的目的,是為了對視頻或圖片進(jìn)行處理。

關(guān)于Python下配置OpenCV的過程,由于不能直接使用pip進(jìn)行安裝,過程相對復(fù)雜一些,不過,網(wǎng)上文章很多,多查閱一些資料,需要注意的是,要清楚自己的Python的版本,Python2和Python3的配置方法不同。

本節(jié)實(shí)現(xiàn)的是使用內(nèi)建攝像頭捕獲視頻,并顯示視頻的每一幀以實(shí)現(xiàn)視頻的播放。

  1. 創(chuàng)建攝像頭對象,指向文件
  2. 逐幀顯示實(shí)現(xiàn)視頻播放

下面進(jìn)入我們的主題,配置好OpenCV以后,創(chuàng)建一個video_capture.py文件,內(nèi)容如下:

#!/usr/bin/env python3 
import cv2 
 
#創(chuàng)建顯示視頻的窗口 
cv2.namedWindow('Video') 
 
#打開攝像頭 
video_capture = cv2.VideoCapture(0) 
 
#創(chuàng)建視頻寫入對象 
video_writer = cv2.VideoWriter('test.avi', 
                cv2.VideoWriter_fourcc('M', 'J', 'P', 'G'), 
                video_capture.get(cv2.CAP_PROP_FPS), 
                (int(video_capture.get(cv2.CAP_PROP_FRAME_WIDTH)), 
                int(video_capture.get(cv2.CAP_PROP_FRAME_HEIGHT)))) 
 
#讀取視頻幀,對視頻幀進(jìn)行高斯模糊,然后寫入文件并在窗口顯示 
success, frame = video_capture.read() 
while success and not cv2.waitKey(1) == 27: 
  blur_frame = cv2.GaussianBlur(frame, (3, 3), 0) 
  video_writer.write(blur_frame) 
  cv2.imshow("Video", blur_frame) 
  success, frame = video_capture.read() 
 
#回收資源 
cv2.destroyWindow('Video') 
video_capture.release() 

我們來仔細(xì)看一下,Python OpenCV的模塊名稱是cv2,所以我們導(dǎo)入模塊cv2,接下來,準(zhǔn)備了顯示視頻幀的窗口。

獲取攝像頭視頻使用VideoCapture類,其構(gòu)造參數(shù)為攝像頭的index,筆記本只有一個攝像頭,其index為0;將視頻幀寫入文件使用VideoWriter類,其構(gòu)造參數(shù)分別為寫入的文件路徑名,編碼格式,幀率以及視頻尺寸,我們這里的幀率和視頻尺寸使用了攝像頭提供的參數(shù),這可以通過VideoCapture獲取。

萬事俱備,我們可以調(diào)用VideoCapture.read()按幀讀取數(shù)據(jù),每一幀視頻就是一幅圖像,我們對其進(jìn)行高斯模糊,然后將其寫入文件,并顯示在窗口上。

我們在點(diǎn)擊Esc時會退出視頻預(yù)覽和錄制,之后銷毀窗口并釋放攝像頭。

可以看到,Python的OpenCV依然表現(xiàn)出了Python代碼的簡潔性,這為我們提供了一種開發(fā)思路,可以在研究階段使用Python,實(shí)現(xiàn)中使用C++實(shí)現(xiàn)。當(dāng)然,如果對Python足夠信任,完全可以直接使用Python,Python的OpenCV只是一套接口,真正的OpenCV代碼是用C++實(shí)現(xiàn)的,其性能足夠好,Python調(diào)用C/C++代碼的效率也是不錯的。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

娄烦县| 和田市| 石嘴山市| 竹溪县| 浙江省| 大方县| 应用必备| 高陵县| 嘉峪关市| 屏东县| 祁阳县| 兰溪市| 西藏| 防城港市| 金门县| 兰州市| 东宁县| 合山市| 平南县| 耿马| 繁昌县| 岗巴县| 兴化市| 河北省| 绥芬河市| 黑河市| 芜湖县| 宝应县| 尚义县| 祁连县| 和平县| 中阳县| 海南省| 山西省| 浑源县| 平乐县| 松桃| 灵台县| 龙游县| 星子县| 铜梁县|