在opencv中的文件夹中覆盖图像序列

Mas*_*ist 5 c++ opencv visual-studio-2010

在C++中使用VS 2010并尝试将其置于for循环中

String filename = "cropped_" + (ct+1);
imwrite(filename + ".jpg", img_cropped);
Run Code Online (Sandbox Code Playgroud)

这些是出来的文件名:

ropped_.jpg
opped_.jpg
pped_.jpg
Run Code Online (Sandbox Code Playgroud)

我该怎么做?如何将它们放在与我的源代码相同的目录中的文件夹中?

sga*_*zvi 11

您可以使用它std::stringstream来构建顺序文件名:

首先包括sstreamC++标准库的头文件.

#include<sstream>

using namespace std;
Run Code Online (Sandbox Code Playgroud)

然后在代码中,您可以执行以下操作:

stringstream ss;

string name = "cropped_";
string type = ".jpg";

ss<<name<<(ct + 1)<<type;

string filename = ss.str();
ss.str("");

imwrite(filename, img_cropped);
Run Code Online (Sandbox Code Playgroud)

要创建新文件夹,可以mkdir在以下system函数中使用windows'命令stdlib.h:

 string folderName = "cropped";
 string folderCreateCommand = "mkdir " + folderName;

 system(folderCreateCommand.c_str());

 ss<<folderName<<"/"<<name<<(ct + 1)<<type;

 string fullPath = ss.str();
 ss.str("");

 imwrite(fullPath, img_cropped);
Run Code Online (Sandbox Code Playgroud)