您的位置:

python读取视频帧数的简单介绍

本文目录一览:

如何用python实现视频关键帧提取并保存为图片

import cv2

vc = cv2.VideoCapture('Test.avi') #读入视频文件

c=1

if vc.isOpened(): #判断是否正常打开

rval , frame = vc.read()

else:

rval = False

timeF = 1000 #视频帧计数间隔频率

while rval: #循环读取视频帧

rval, frame = vc.read()

if(c%timeF == 0): #每隔timeF帧进行存储操作

cv2.imwrite('image/'+str(c) + '.jpg',frame) #存储为图像

c = c + 1

cv2.waitKey(1)

vc.release()

如何用python实现视频关键帧提取并保存为图片?

参考代码如下:

import

cv2

vc

=

cv2.VideoCapture('Test.avi')

#读入视频文件

c=1

if

vc.isOpened():

#判断是否正常打开

rval

,

frame

=

vc.read()

else:

rval

=

False

timeF

=

1000

#视频帧计数间隔频率

while

rval:

#循环读取视频帧

rval,

frame

=

vc.read()

if(c%timeF

==

0):

#每隔timeF帧进行存储操作

cv2.imwrite('image/'+str(c)

+

'.jpg',frame)

#存储为图像

c

=

c

+

1

cv2.waitKey(1)

vc.release()

python中如何使用OpenCv读取视频的某一帧并保存到数组NumPy中

1:可以使用opencv读取。

2:其代码如下:

#includehighgui.h

#includecv.h

//从摄像头中读入数据

int main(int argc,char** argv)

{

cvNamedWindow(Example1,CV_WINDOW_AUTOSIZE);

CvCapture* capture; //初始化一个CvCapture结构的指针

if(argc==1)

{

capture=cvCaptureFromCAM(0);//如果参数为1,则从摄像头中读入数据,并返回一个CvCapture的指针

} //注:《学习OpenCV》中此处用cvCreateCameraCapture为错

else

{

capture=cvCreateFileCapture(argv[1]);

}

assert(capture!=NULL); //断言(assert)使用,检查capture是否为空指针,为假时程序退出,并打印错误消息

IplImage* frame;

while(1)

{

frame=cvQueryFrame(capture);//用于将下一帧视频文件载入内存(实际是填充和更新CvCapture结构中),返回一个对应当前帧的指针

if(!frame)

break;

cvShowImage(Example1,frame);

char c=cvWaitKey(33);

if(c==27) break; //出发ESC键退出循环,读入数据停止

}

cvReleaseCapture(capture);//释放内存

cvDestroyWindow(Example1);

}

python的opencv,如何用imread读取视频的每一帧

1:可以使用opencv读取。

2:其代码如下:

#includehighgui.h

#includecv.h

//从摄像头中读入数据

int main(int argc,char** argv)

{

cvNamedWindow(Example1,CV_WINDOW_AUTOSIZE);

CvCapture* capture; //初始化一个CvCapture结构的指针

if(argc==1)

{

capture=cvCaptureFromCAM(0);//如果参数为1,则从摄像头中读入数据,并返回一个CvCapture的指针

} //注:《学习OpenCV》中此处用cvCreateCameraCapture为错

else

{

capture=cvCreateFileCapture(argv[1]);

}

assert(capture!=NULL); //断言(assert)使用,检查capture是否为空指针,为假时程序退出,并打印错误消息

IplImage* frame;

while(1)

{

frame=cvQueryFrame(capture);//用于将下一帧视频文件载入内存(实际是填充和更新CvCapture结构中),返回一个对应当前帧的指针

if(!frame)

break;

cvShowImage(Example1,frame);

char c=cvWaitKey(33);

if(c==27) break; //出发ESC键退出循环,读入数据停止

}

cvReleaseCapture(capture);//释放内存

cvDestroyWindow(Example1);

}