c++如何连续读取好多张图
时间: 2024-09-09 08:01:29 浏览: 42
在C++中,如果你想要连续读取多张图片,可以使用OpenCV(Open Source Computer Vision Library)库提供的功能。以下是一个基本的示例,展示如何遍历目录下的所有图片文件并逐个读取:
```cpp
#include <opencv2/opencv.hpp>
#include <filesystem>
std::string folder_path = "your_image_folder_path"; // 替换为你图片所在的文件夹路径
// 使用filesystem库获取文件夹中的所有图片文件
for (const auto& entry : std::filesystem::directory_iterator(folder_path)) {
if (entry.is_regular_file() && entry.path().extension() == ".bmp" || ".jpg" || ".png") { // 检查文件是否为图片
cv::Mat image;
try {
image = cv::imread(entry.path()); // 读取图片
if (!image.data) { // 如果读取失败
std::cout << "Failed to read file: " << entry.path() << std::endl;
continue;
}
// 对每个图片进行处理...
} catch (cv::Exception& e) {
std::cerr << "Error reading file: " << entry.path() << ", error message: " << e.what() << std::endl;
}
}
}
```
在这个例子中,我们首先获取文件夹中的所有条目,然后对每个文件判断其是否为图片(这里假设了BMP、JPG和PNG格式)。如果文件是图片,就尝试用`cv::imread`读取它,并在可能的情况下进行进一步操作。
阅读全文