前言
对已有的视频进行解帧,得到视频图像帧,便于之后的图像处理。
c++/opencv代码如下:
#include<highgui.h> #include<cv.h> #include<iostream> using namespace std; using namespace cv; int main() { CvCapture* capture = cvCaptureFromFile(".\\input_path\\input_video.mp4"); int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS); long nFrame = (long)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT); // 获取总帧数 int width = (int)cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_WIDTH); int height = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT); IplImage* image = NULL; char save_path[100]; int i = 0; int start = 1; int end = 1000; if (capture) { while (1) { image = cvQueryFrame(capture); if (image) { i++; cout << "i=" << i << endl; if (i >= start && i <= end) { //cout << "save " << i << " th image..." << endl; sprintf(save_path, ".\\output_path\\frames\\%d.jpg", i); cvSaveImage(save_path, image); } if (i > end) { return 0; } } } } }
注意:
c++代码中的路径必须是反双斜杠!!!
完