OpenCV将连续图片合成视频AVI

//功能:将连续图片合成视频AVI
//日期:2016—05-08
//平台:vs2015+opencv3.1
#include<opencv2\opencv.hpp>
#include<iostream>
#include<Windows.h>

using namespace std;
using namespace cv;

void main()
{
    Mat src=imread("C:\\EXPERIMENT\\眼图照片  (glass)\\wph2\\l0.bmp",1);
    char image_name[50];
    int isColor = 1;
    int fps = 10;
    int frameWidth = src.cols;
    int frameHeight = src.rows;

    VideoWriter writer("C:\\EXPERIMENT\\test_l.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'), fps,
                        Size(frameWidth, frameHeight), isColor);

    cout << "info:" << endl
        << "ff.avi" << endl
        << "Size:" << frameWidth << "*" << frameHeight << endl
        << "fps:" << fps << endl;


    for (int i = 0; i < 1000; i++)
    {
        sprintf(image_name, "C:\\EXPERIMENT\\眼图照片(glass)\\wph2\\l%d.bmp", i);
        src = imread(image_name, 1);
        if (src.empty())
        {
            MessageBox(NULL, L"全部图像加载完成!", L"温馨提示", MB_OK | MB_ICONINFORMATION);
            break;
        }
        imshow("【src】", src);
        waitKey(5);
        writer.write(src);
    }
}
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用OpenCV合成视频最常见的方法是通过将一系列图像按顺序合成为视频的帧。以下是一个基本的方法,可以帮助你开始合成视频。 首先,你需要从OpenCV库中导入所需的模块。 ```python import cv2 import os ``` 接下来,你需要指定图像序列的路径和文件扩展名。 ```python image_folder = '图像文件夹路径' video_name = '输出视频名字.avi' images = [img for img in os.listdir(image_folder) if img.endswith(".jpg")] ``` 然后,你需要对图像进行排序,以确保它们按照正确的顺序合成为视频。 ```python images.sort(key=lambda x: int(x.split('.')[0])) ``` 接下来,你需要提取第一张图像的大小作为输出视频的帧大小。 ```python frame = cv2.imread(os.path.join(image_folder, images[0])) height, width, layers = frame.shape ``` 然后,你需要使用OpenCV库创建一个输出视频文件。 ```python video = cv2.VideoWriter(video_name, 0, 1, (width, height)) ``` 之后,你需要遍历图像序列,并将每个图像逐帧写入输出视频。 ```python for image in images: video.write(cv2.imread(os.path.join(image_folder, image))) ``` 最后,当所有图像都合成到视频中后,你需要释放资源并关闭输出视频。 ```python cv2.destroyAllWindows() video.release() ``` 以上就是使用OpenCV合成视频的基本方法。你可以根据自己的需求进行修改和调整,例如调整帧率、添加音频等。 ### 回答2: 使用OpenCV可以很方便地将一系列图像按帧合成为视频。下面是一种简单的方法来实现。 首先,我们需要导入OpenCV库和numpy库: ```python import cv2 import numpy as np ``` 接下来,我们需要设置一些视频的参数,例如帧率、输出的视频编码方式等: ```python # 设置视频参数 frame_rate = 24.0 # 帧率 output_filename = "output_video.mp4" fourcc = cv2.VideoWriter_fourcc(*"mp4v") # 视频编码方式 ``` 然后,我们创建一个VideoWriter对象来写入视频文件,并指定参数,例如输出文件名、视频编码方式、帧率等: ```python # 创建VideoWriter对象 output_video = cv2.VideoWriter(output_filename, fourcc, frame_rate, (image_width, image_height)) ``` 接下来,我们循环遍历每个图像,并将其写入视频文件中: ```python for image_file in image_files: # 读取图像 image = cv2.imread(image_file) # 将图像写入视频文件 output_video.write(image) ``` 最后,我们记得释放VideoWriter对象,并关闭输出视频文件流: ```python # 释放资源 output_video.release() cv2.destroyAllWindows() ``` 通过上述步骤,我们可以将一个文件夹中的图像按顺序合成为一个视频文件。这是一个简单的OpenCV图像按帧合成视频的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值