c++ opencv 批量图像转灰度图
时间: 2023-12-27 07:04:57 浏览: 179
利用c++将16位图像转换为8位图像,支持批量
5星 · 资源好评率100%
您好!要使用C++和OpenCV库批量将图像转换为灰度图,可以按照以下示例代码进行操作:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
std::string inputFolder = "input_folder";
std::string outputFolder = "output_folder";
// 遍历输入文件夹中的所有文件
for (const auto& entry : fs::directory_iterator(inputFolder)) {
std::string filePath = entry.path().string();
// 读取图像
cv::Mat image = cv::imread(filePath);
// 转换为灰度图像
cv::Mat grayImage;
cv::cvtColor(image, grayImage, cv::COLOR_BGR2GRAY);
// 构建输出文件的完整路径
std::string fileName = entry.path().filename().string();
std::string outputPath = outputFolder + "/" + fileName;
// 保存灰度图像
cv::imwrite(outputPath, grayImage);
}
return 0;
}
```
上述代码假设您有一个包含要转换的图像的输入文件夹,并且希望将转换后的灰度图像保存在输出文件夹中。您需要将`inputFolder`和`outputFolder`替换为实际的文件夹路径。代码将遍历输入文件夹中的每个图像,将其转换为灰度图像,并保存到输出文件夹中,文件名保持不变。
请确保已在编译和链接过程中包含了OpenCV库,并将代码与OpenCV头文件一起编译。希望对您有所帮助!如果有任何问题,请随时提问。
阅读全文