Opencv 视频转为图像序列的实现

基于OpenCV的视频转为图像序列方法:

基于C++版本

#include <iostream>

#include "cv.h"

#include "opencv2/opencv.hpp"

using namespace std;

using namespace cv;

void main()

{

VideoCapture cap("C:\\Users\\Leo\\Desktop\\Megamind.avi");

if ( !cap.isOpened() )

{

return ;

}

int imgIndex(0);

for ( ; ; )

{

Mat frame;

cap >> frame;

if ( frame.empty() )

{

break;

}

char* imageSaveName = new char[64];

sprintf( imageSaveName, "C:\\Users\\Leo\\Desktop\\new\\%05d.jpg", imgIndex );

imwrite( imageSaveName, frame );

delete[] imageSaveName;

imgIndex++;

}

cout << "total frames: " << imgIndex << endl;

}

基于C版本

#include <iostream>

#include "cv.h"

#include "opencv2/opencv.hpp"

using namespace std;

using namespace cv;

void main()

{

// video read

CvCapture *capture = cvCreateFileCapture("C:\\Users\\Leo\\Desktop\\Megamind.avi");

IplImage *frame;

int imgIndex(0);

while(1)

{

frame = cvQueryFrame(capture);

if ( !frame )

{

break;

}

char* imageSaveName = new char[64];

sprintf( imageSaveName, "C:\\Users\\Leo\\Desktop\\new\\%05d.jpg", imgIndex );

cvSaveImage( imageSaveName, frame );

delete[] imageSaveName;

imgIndex++;

}

cout << "total frames: " << imgIndex << endl;

cvDestroyWindow( "VideoImage" );

cvReleaseCapture( &capture );

cvReleaseImage( &frame );

}

测试数据为OpenCV自带的视频:Megamind.avi,可以在opencv\sources\samples\cpp\tutorial_code\HighGUI\video-input-psnr-ssim\video路径下查找,共270帧图像,运行结果部分截图如下:

以上这篇Opencv 视频转为图像序列的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是 Opencv 视频转为图像序列的实现 的全部内容, 来源链接: utcz.com/p/244665.html

回到顶部