C++opencv连续多张图片修改后保存
时间: 2023-08-01 21:10:43 浏览: 94
你可以使用OpenCV库中的imwrite函数来保存多张修改后的图像。以下是一个示例代码,它读取一系列图像,将它们转换为灰度图像,并将它们保存到一个新的目录中。
```
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取图像序列
vector<Mat> imgList;
for (int i = 1; i <= 10; i++)
{
string filename = "image_" + to_string(i) + ".jpg";
Mat img = imread(filename);
if (img.empty())
{
cout << "Could not open or find the image" << endl;
return -1;
}
imgList.push_back(img);
}
// 修改图像并保存
string outputDir = "output/";
for (int i = 0; i < imgList.size(); i++)
{
// 将图像转换为灰度图像
Mat grayImg;
cvtColor(imgList[i], grayImg, COLOR_BGR2GRAY);
// 保存修改后的图像
string outputFilename = outputDir + "gray_" + to_string(i+1) + ".jpg";
imwrite(outputFilename, grayImg);
}
return 0;
}
```
在此示例中,我们首先使用for循环读取图像序列,并将它们存储在一个vector容器中。然后,我们使用另一个for循环遍历图像序列,将每个图像转换为灰度图像,并使用imwrite函数将其保存到指定目录中。请注意,我们为每个输出文件生成一个新的文件名,以避免覆盖原始图像。
阅读全文