[英]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.