背景
最近需要做一段视频来展示算法的迭代过程,思路是将Matlab代码迭代过程中的结果保存为figure格式并输出为jpg图像,再用C++代码将图片合成为视频。
问题
为了做出炫酷的效果,希望图片背景是黑色的。尽管已经将figure的背景设置为黑色,但保存出的jpg图片背景依然为白色。
解决方案
搜索到的方法如下,最后一个方案成功了:
- 输出图像格式改为PNG(有点扯了);
- 在figure窗口中,文件 -> 预设 -> 图像复制模板 -> 复制选项 -> 图形背景颜色 -> 使用图形颜色;
- 设置axes的颜色为黑 -> set(gca,‘color’,‘k’);
- 在figure窗口中,文件 -> 导出设置 -> 渲染 -> 自定义颜色 -> k -> 应用于图形(只需设置一次)。
注
现在看来用python来将图片合成为视频是更好的选择,但是三年前只会C。
附上用C实现的图片合成视频代码(需要安装opencv):
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
void pic2video(int m);
//核心函数 VideoWriter
int