jpg图片转换为avi视频

要用到视频序列,目前只有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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-26 13:33:12

jpg图片转换为avi视频的相关文章

Matlab从一系列图片导出AVI视频,导出GIF动图

平台:Win7,Matlab 2014a 从一系列图片导出AVI视频的M代码如下: clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj = VideoWriter('out.avi'); % 输出AVI文件名字,out.avi writerObj.FrameRate = 25; % 帧率,25fps writerObj.Quality = 90; % 质量,百分比,90% open(writerObj); for i = 1:1:

matlab读写图片,读取图像序列,读取AVI视频

介绍使用matlab读写图片,读取图像序列,读取AVI视频的方法: 一. 读写图像 使用matlab读一幅图像,并另存 1 % Filename: ImageReadWrite 2 clc; 3 clear; 4 i = imread('D:\\aa3.bmp');%打开D:\\aa3.bmp图像 5 imshow(i); %显示图像 6 imwrite(i, 'D:\\aa4.jpg');%将图像另存为D:\\aa4.jpg 使用matlab读写还可以进行图片格式转换,将jpg图像转换成256

机器学习进阶-图像基本处理-视频的读取与处理 1.cv2.VideoCapture(视频的载入) 2.vc.isOpened(载入的视频是否可以打开) 3.vc.read(视频中一张图片的读取) 4.cv2.cvtColor(将图片转换为灰度图)

1.vc = cv2.VideoCapture('test.mp4') #进行视频的载入 2.vc.isOpened() # 判断载入的视频是否可以打开 3.ret, frame = vc.read()  #进行单张图片的读取,ret的值为True或者Flase, frame表示读入的图片 4.cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  #表示将图片转换为灰度图 代码: import cv2 vc = cv2.VideoCapture('test.mp4')

Duanxx的OpenCV学习:图片转化为视频

前面我说明了一下Opencv的视频转图片的方式和代码,这次要说明的是Opencv如何将图片转化为视频: 本文完整代码下载 1 VideoWriter说明 这里主要用到的是Opencv里的一个类:VideoWriter 其API参考链接:API链接. 函数原型: VideoWriter::VideoWriter(const string& filename, int fourcc, double fps, Size frameSize, bool isColor=true) 参数说明: filen

Opencv将图片转化成视频

// VideoWriter.cpp : 定义控制台应用程序的入口点. // //#include "stdafx.h" #include "cv.h" #include "highgui.h" #include "iostream" using namespace std; int main(int argc, char* argv[]) { double fps = 29;//视频压缩帧率 CvSize size = cv

Mac/iPhone 多媒体(图片、音视频)处理

Mac/iPhone 多媒体(图片.音视频)处理 如何从 iPhone 导出照片和录制的视频 应用 Image Capture(图像捕捉) "图像捕捉"在数码相机或扫描仪与您的 Mac 电脑之间传输图像.当带有摄像头的兼容设备连接到电脑时,可以使用"图像捕捉"来拍照.然后,您可以在 iPhoto 或 Automator 中使用这些图像,或者通过网络共享这些图像. 打开[图像捕捉]应用,选择要导入的已连接的 iPhone.点击底栏左侧下方的箭头按钮展开,可选择[连接此

JAVA 将图片转换为Base64编码

这里使用的jar包是commons-codec-1.10.jar; 示例代码 1 import java.io.FileInputStream; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.io.OutputStream; 6 7 import org.apache.commons.codec.binary.Base64;

怎么样有效的把图片转换为cad

制图工程师们在制图的过程中经常会需要把一些漂亮的图片转换成CAD格式,在绘图的时候使用,那么怎么把图片转换成为CAD才是最有效的呢? 迅捷CAD编辑器是一款专业的CAD编辑工作,软件支持CAD图纸浏览.编辑.转换等工作.这里我们同样可以使用迅捷CAD编辑器用图片转成CAD格式图纸. 步骤一,下载.安装迅捷CAD编辑器 请在浏览器中,在编辑框中输入迅捷CAD编辑器,点击进入软件官网(http://cad.xjpdf.com/),然后在官网点击"立即下载"按钮,将软件下载安装到电脑上. 步

CircleImageManager ——将图片转换为圆形图片的类

package com.kale.utils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuffXfermode; import android.g