opencv imwrite多张不同文件名定义c++
时间: 2023-12-06 15:51:44 浏览: 83
以下是使用OpenCV的C++代码示例,将多个图像保存到不同的文件中:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img1 = imread("image1.png");
Mat img2 = imread("image2.png");
Mat img3 = imread("image3.png");
if (img1.empty() || img2.empty() || img3.empty()) {
cout << "Error: Could not read image file(s)." << endl;
return -1;
}
imwrite("output1.png", img1);
imwrite("output2.png", img2);
imwrite("output3.png", img3);
return 0;
}
```
在上面的代码中,我们首先使用imread函数读取三个图像文件。如果我们无法读取任何一个图像,则会输出错误消息并退出程序。然后,我们使用不同的文件名将每个图像保存为PNG格式的文件。在这个例子中,我们分别将它们保存为output1.png、output2.png和output3.png。
相关问题
opencv imwrite多张不同文件名定义c++代码
下面是一个示例代码,可以使用opencv的imwrite函数写入多张不同文件名的图像。
```c
#include <opencv2/opencv.hpp>
#include <vector>
#include <string>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 要写入的图像
vector<Mat> images;
images.push_back(imread("image1.jpg", IMREAD_COLOR));
images.push_back(imread("image2.jpg", IMREAD_COLOR));
images.push_back(imread("image3.jpg", IMREAD_COLOR));
// 文件名
vector<string> filenames;
filenames.push_back("output1.jpg");
filenames.push_back("output2.jpg");
filenames.push_back("output3.jpg");
// 写入图像
for (int i = 0; i < images.size(); i++)
{
imwrite(filenames[i], images[i]);
}
return 0;
}
```
在这个例子中,我们首先创建了一个包含要写入的图像的向量。然后,我们创建了另一个向量,包含每个图像的文件名。最后,我们使用for循环,将每个图像写入其对应的文件。
opencv 循环imwrite多张不同文件名定义c++
以下是一个示例代码,可以循环保存多张图片并使用不同的文件名:
```C++
#include <opencv2/opencv.hpp>
#include <string>
using namespace cv;
using namespace std;
int main()
{
Mat img;
string filename;
// 循环保存多张图片
for (int i = 0; i < 10; i++)
{
// 定义文件名
filename = "image_" + to_string(i) + ".jpg";
// 读取图片
img = imread("input.jpg");
// 保存图片
imwrite(filename, img);
}
return 0;
}
```
在上面的代码中,我们使用了循环来保存多张图片。在每次循环中,我们都会定义一个不同的文件名,这样每张图片都会保存到不同的文件中。我们使用 `to_string()` 函数将整数转换为字符串,并将其与其他字符串拼接起来来定义文件名。最后,我们使用 `imwrite()` 函数保存图片。
阅读全文