cpp编写一段代码,读取文件夹内以.tif结尾的图片,存到cv::vectorcv::Mat中
时间: 2024-09-10 19:24:15 浏览: 39
为了在C++中使用OpenCV库读取文件夹中的.tif图像文件并将它们存储在cv::Mat类型的cv::vector中,你可以使用以下代码。这段代码首先使用OpenCV的imread函数读取图像,然后将图像添加到cv::Mat类型的vector中。
请注意,这段代码需要你已经安装了OpenCV库。
```cpp
#include <opencv2/opencv.hpp>
#include <vector>
int main() {
// 定义图像存储路径和名称前缀
std::string path = "your_image_folder_path/";
std::string prefix = "image_";
// 初始化cv::Mat类型的vector
std::vector<cv::Mat> images;
// 遍历文件夹中的所有文件
for (auto& file : std::filesystem::directory_iterator(path)) {
// 检查文件是否为图像文件
if (file.path().extension() == ".tif") {
// 读取图像文件
cv::Mat img = cv::imread(file.path(), cv::IMREAD_COLOR);
// 检查图像是否正确读取
if (img.empty()) {
std::cout << "无法读取文件: " << file.path() << std::endl;
continue;
}
// 将图像添加到vector中
images.push_back(img);
}
}
// 打印存储的图像数量
std::cout << "存储的图像数量: " << images.size() << std::endl;
return 0;
}
```
这段代码首先定义了图像存储的路径和文件前缀,然后初始化了一个空的cv::Mat类型的vector。接着,它遍历指定路径下的所有文件,检查每个文件是否为图像文件(以.tif结尾)。如果是,它就使用imread函数读取该文件,并将其添加到vector中。如果无法读取图像,它将打印错误消息并跳过该文件。最后,它将打印出存储的图像数量。
请注意替换代码中的"your_image_folder_path"为你实际的文件夹路径。此外,这段代码假设所有的图像文件都是彩色图像(即有三种通道)。如果你的图像是灰度图像或者只有一种通道,你可能需要调整imread函数的第二个参数。
阅读全文