“毛星雲OpenCV3程式設計入門之python實現”第三篇讀取視訊+呼叫攝像頭
阿新 • • 發佈:2018-12-14
1.6.1讀取視訊+呼叫攝像頭
# -*- coding: gbk -*-
__author__ = 'sunzhilong'
import cv2
#讀取視訊,以幀顯示
cap = cv2.VideoCapture("E:/Study/python/OpenCV_study/img/1.avi")
while(1):
ret, frame = cap.read()
cv2.imshow("capture" ,frame)
if cv2.waitKey(50) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
#呼叫攝像頭讀取視訊資訊
#讀取視訊,以幀顯示
cap = cv2.VideoCapture(0)
while(1):
ret, frame = cap.read()
cv2.imshow("capture" ,frame)
if cv2.waitKey(50) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
原書中C++程式碼:
//--------------------------------------【程式說明】-------------------------------------------
// 程式說明:《OpenCV3程式設計入門》OpenCV3版書本配套示例程式06
// 程式描述:使用VideoCapture類進行視訊讀取和播放
// 開發測試所用作業系統: Windows 7 64bit
// 開發測試所用IDE版本:Visual Studio 2010
// 開發測試所用OpenCV版本: 3.0 beta
// 2014年11月 Created by @淺墨_毛星雲
// 2014年11月 Revised by @淺墨_毛星雲
// 2015年11月 Second Revised by @淺墨_毛星雲
//------------------------------------------------------------------------------------------------
//---------------------------------【標頭檔案、名稱空間包含部分】----------------------------
// 描述:包含程式所使用的標頭檔案和名稱空間
//-------------------------------------------------------------------------------------------------
#include <opencv2\opencv.hpp>
using namespace cv;
//-----------------------------------【main( )函式】--------------------------------------------
// 描述:控制檯應用程式的入口函式,我們的程式從這裡開始
//-------------------------------------------------------------------------------------------------
int main( )
{
//【1】讀入視訊
VideoCapture capture("1.avi");
//【2】迴圈顯示每一幀
while(1)
{
Mat frame;//定義一個Mat變數,用於儲存每一幀的影象
capture>>frame; //讀取當前幀
//若視訊播放完成,退出迴圈
if (frame.empty())
{
break;
}
imshow("讀取視訊",frame); //顯示當前幀
waitKey(30); //延時30ms
}
//【1】從攝像頭讀入視訊
VideoCapture capture(0);
//【2】迴圈顯示每一幀
while(1)
{
Mat frame; //定義一個Mat變數,用於儲存每一幀的影象
capture>>frame; //讀取當前幀
imshow("讀取視訊",frame); //顯示當前幀
waitKey(30); //延時30ms
}
return 0;
}