笔记
// 题目:将文件夹/rgb下以时间命名的序列图片重新命名为0000-9999的格式。
#include <iostream>
#include <vector>
#include <filesystem>
#include <opencv4/opencv2/core.hpp>
#include <opencv4/opencv2/imgcodecs.hpp>
#include <opencv4/opencv2/core/utility.hpp>
using namespace std;
using namespace cv;
// 下载使用的数据集:https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_desk.tgz
int main(int argc, char** argv) {
// 获取路径
string dataPath = argv[1];
dataPath += "/";
// 获取路径下所有文件名
vector<string> imageNames;
glob(dataPath, imageNames, false);
// 输出图片数量
cout << "The num of iamge :" << imageNames.size() << endl;
for (int num = 0; num < imageNames.size(); num++) {
// 读取图片
Mat imageMat = imread(imageNames[num], IMREAD_UNCHANGED);
// 判断是否读取成功
if (imageMat.empty())
cout << "Can't open color image!" << imageNames[num] << endl;
// 创建图片存储文件夹
string colorIndex = dataPath + "../rgb_copy/";
// 使用C++17 STL
filesystem::create_directory(colorIndex);
// 保存图片
imwrite(colorIndex + to_string(num) + ".png", imageMat);
// 打印进程
num++;
cout << "\r[ processing frame " << to_string(num) << " ] ";
}
cout << "\nAll done." << endl;
return 0;
}