[英]Video files in opencv
我想讀取視頻文件(.avi或.mov)並使用Opencv檢測運動和邊緣。可以幫我提供代碼嗎?我想創建一個GUI,我們可以在其中選擇視頻文件,然后我們就可以進行圖像處理了opencv中的函數?
如何閱讀視頻文件 :
如何跟蹤/檢測運動 :
如何檢測邊/計數 :
有關如何檢測形狀的更多信息,請查看此文章 。
這對我有用,我正在使用AVI
文件。 使用文件名調用視頻,在主循環中獲取下一幀並關閉,然后終止或更改為另一個視頻。
IplImage *videoframe;
int videoFps;
CvCapture *videoCapture=NULL;
int video(char *videoFile) {
int key;
/* load the AVI file */
videoCapture = cvCaptureFromAVI( videoFile );
/* always check */
if( !videoCapture )
return 0;
/* get fps, needed to set the delay */
videoFps = ( int )cvGetCaptureProperty( videoCapture, CV_CAP_PROP_FPS );
/* display video */
cvNamedWindow( "video", 0 );
}
void videoNext() {
if ( ! videoCapture ) return;
videoframe = cvQueryFrame( videoCapture );
if( !videoframe ) return;
cvShowImage( "video", videoframe );
/* quit if user press 'q' */
int key = cvWaitKey( 1000 / videoFps );
}
void videoShutdown() {
/* free memory */
cvReleaseCapture( &videoCapture );
cvDestroyWindow( "video" );
return;
}
注意:Opencv不支持音頻播放關於如何在opencv中使用ffmmpeg請參閱audio-output-with-video-processing-with-opencv
您應該查看opencv的python文件夾中包含的示例。 它們將在這里找到:opencv \\ samples \\ python2
在那里你會發現opencv的許多基本和高級功能(以cv2格式)。 網站上還有很多教程(主要是用c ++編寫): http : //opencv.itseez.com/doc/tutorials/tutorials.html
閱讀和編寫視頻圖像如下: http : //opencv.itseez.com/trunk/modules/highgui/doc/reading_and_writing_images_and_video.html
對於AVI的初始視頻捕獲:
import cv2
import cv2.cv as cv
import numpy as np
cap = cv2.VideoCapture(filename)
img = cv2.VideoCapture.read()
if img:
print img.get(cv.CV_CAP_PROP_FRAME_HEIGHT)
print type(img)
# loop through rest of frames reading one at a time
從視頻中讀取幀的最短示例:
cap = cv::VideoCapture("foo.avi");
frame = cv::Mat;
cap >> frame;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.