jpg图片转换为avi视频
来源:互联网 发布:java高斯模糊 编辑:程序博客网 时间:2024/04/29 18:29
要用到视频序列,目前只有jpg图片,所以参考了一些网络资料,并做修改,转化测试成功。
程序:
#include <stdlib.h>#include <stdio.h>#include <math.h>#include <cv.h>#include <highgui.h>#define NUM_FRAME 300 //只处理前300帧,根据视频帧数可修改void Video_to_image(char* filename,const char* dirname){printf("------------- video to image ... ----------------\n");//初始化一个视频文件捕捉器CvCapture* capture = cvCaptureFromAVI(filename);//获取视频信息//cvQueryFrame(capture);int frameH = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);int frameW = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);int numFrames = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);printf("\tvideo height : %d\n\tvideo width : %d\n\tfps : %d\n\tframe numbers : %d\n", frameH, frameW, fps, numFrames);//定义和初始化变量int i = 0;IplImage* img = 0;char image_name[130];cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);//读取和显示while (1){img = cvQueryFrame(capture); //获取一帧图片cvShowImage("mainWin", img); //将其显示char key = cvWaitKey(20);sprintf(image_name, "%s%s%d%s", dirname,"outImage", i++, ".jpg");//保存的图片名cvSaveImage(image_name, img); //保存一帧图片if (i == NUM_FRAME) break;}cvReleaseCapture(&capture);cvDestroyWindow("mainWin");}void Image_to_video(const char* in,const char* out){int num = 1;CvSize size = cvSize(1024, 768); //视频帧格式的大小double fps = 30; //每秒钟的帧率CvVideoWriter *writer = cvCreateVideoWriter(out, CV_FOURCC('D', 'I', 'V', 'X'), fps, size); //创建视频文件char cname[100];sprintf(cname,in , num); //加载图片的文件夹,图片的名称编号是1开始1,2,3,4,5.。。。IplImage *src = cvLoadImage(cname);if (!src){return;}IplImage *src_resize = cvCreateImage(size, 8, 3); //创建视频文件格式大小的图片cvNamedWindow("avi");while (src){cvShowImage("avi", src_resize);cvWaitKey(1);cvResize(src, src_resize); //将读取的图片设置为视频格式大小相同cvWriteFrame(writer, src_resize); //保存图片为视频流格式cvReleaseImage(&src); //释放空间num++;sprintf(cname,in, num);src = cvLoadImage(cname); //循环读取数据}cvReleaseVideoWriter(&writer);cvReleaseImage(&src_resize);}int main(int argc, char *argv[]){char infilename[130] = "C:/Users/jiang/Desktop/output/infile.avi";const char *dirname = "C:/Users/jiang/Desktop/output/tupian/";//Video_to_image(infilename,dirname); //视频转图片const char *outImagename = "C:/Users/jiang/Desktop/output/breakdancer/cam3/3pic (%d).jpg";const char *outVideoname = "C:/Users/jiang/Desktop/output/3outfile.avi";Image_to_video(outImagename,outVideoname ); //图片转视频return 0;}
0 0
- jpg图片转换为avi视频
- OpenCV实现JPG转换为avi格式的视频流
- opencv图片转换为avi格式视频
- MATLAB 将jpg图片合成avi视频
- matlab将jpg图片转成avi视频
- MATLAB 将jpg图片合成avi视频
- linux下多张jpg图片转化为.avi
- matlab 将jpg图片转成avi视频代码
- Bmp 图片转换为 jpg 图片(delphi)
- 图片转换为视频
- html转换为图片(html to jpg)
- php各类图片转换为jpg格式
- 将avi视频转换为多帧的dicom图
- opencv 将图片合成为视频流(AVI格式)
- 【EMGU】读取视频AVI文件+保存任意帧为图片
- opencv 将图片合成为视频流(AVI格式)
- OPENCV jpg图片合成avi视屏
- 图片类型转换,如png转换为jpg
- HDU-2612-Find a way
- 使用命令行编译时出现某些Android提供的类找不到的情况
- java计算2个时间相差的天数
- Java中的数字基本运算和精度问题
- 2015 Multi-University Training Contest 2 1006 Friends 壮压
- jpg图片转换为avi视频
- 暑假集训——贪心 P - Yogurt factory 奶牛场
- PAT (Advanced Level) 1032. Sharing (25) 求链表第一个交点,测试用例不保证有交点
- HDU-1251-统计难题(未完待续 还有两种方法还没整理)
- Java错误提示----------
- Python入门学习笔记之Python模块
- android自定义倾斜拉伸动画
- China Vis 2015 会议小结
- CUFFT中FFT点数对FFT性能的影响测试