百度上搜的好多代码都差点意思,突发奇想用chatGPT实现,描述了自己的功能需求,就啥也不用做等着CV了,不得不说真牛逼,就跟你出了道leetcode题有人给你写完了一样。
注: output的视频格式是.avi格式,暂时没试过其他格式,可以自己百度修改。
//以下代码基于ChatGPT生成版本修改
void Image_To_Video(string img_path, string output)
{
//img_path:图片所在目录路径
//output:生成视频路径
// 读取文件夹中的图片
vector<String> filenames;
String folder = img_path; // 文件夹路径
glob(folder, filenames);
for (String s : filenames) {
cout << s << endl;
}
// 定义保存视频的相关参数
Size video_size = Size(960, 540); // 视频分辨率
int fourcc = VideoWriter::fourcc('M', 'J', 'P', 'G'); // 视频编码格式
int fps = 10; // 视频帧率
// 创建VideoWriter对象,用于保存视频
VideoWriter video(output, fourcc, fps, video_size);
if (!video.isOpened()) // 判断是否创建成功
{
cout << "无法创建视频文件" << endl;
return ;
}
for (size_t i = 0; i < filenames.size(); i++)
{
// 读取图片
Mat image = imread(filenames[i], IMREAD_COLOR);
if (image.empty()) // 判断是否读取成功
{
cout << "无法读取图片:" << filenames[i] << endl;
continue;
}
// 将图片大小调整为视频的分辨率
resize(image, image, video_size);
// 将图片写入视频
video.write(image);
}
// 释放VideoWriter对象和窗口资源
video.release();
destroyAllWindows();
}