c++用时间命名为图片名称
时间: 2024-03-12 13:49:52 浏览: 55
jpeg 或 jpg 照片根据照片的修改时间批量重命名C++源代码
在C++中,可以使用`time()`函数获取当前时间戳,然后将其格式化为指定的日期时间格式,作为图片的名称。以下是一个基本的将时间作为图片名称的代码示例:
```c++
#include <librealsense2/rs.hpp>
#include <opencv2/opencv.hpp>
#include <time.h>
int main() {
// 创建RealSense管道
rs2::pipeline pipe;
rs2::config cfg;
cfg.enable_stream(RS2_STREAM_DEPTH, 640, 480, RS2_FORMAT_Z16, 30);
pipe.start(cfg);
// 循环获取深度帧并保存为图片
while (true) {
rs2::frameset frames = pipe.wait_for_frames();
rs2::depth_frame depth = frames.get_depth_frame();
// 获取当前时间并格式化为指定的日期时间格式
time_t now = time(nullptr);
struct tm tstruct;
char buf[80];
localtime_s(&tstruct, &now);
strftime(buf, sizeof(buf), "%Y%m%d_%H%M%S", &tstruct);
// 将深度帧转换为OpenCV格式
cv::Mat depth_image(cv::Size(640, 480), CV_16UC1, (void*)depth.get_data(), cv::Mat::AUTO_STEP);
// 以时间命名图片并保存
std::string file_name = std::string(buf) + ".png";
cv::imwrite(file_name, depth_image);
}
return 0;
}
```
在上述代码中,我们使用RealSense SDK创建了一个管道,并配置了深度流的参数。在循环中,我们通过`wait_for_frames()`函数获取深度帧,并使用`time()`函数获取当前时间戳。然后,我们使用`localtime_s()`和`strftime()`函数将时间戳格式化为指定的日期时间格式。最后,我们将格式化后的时间作为图片名称,并使用`imwrite()`函数保存深度图像为PNG格式。
阅读全文