函数cvSaveImage中的动态名称

时间:2014-05-07 15:04:03

标签: c++ opencv image-processing

我有输入图像名称的代码,如IMG01。

 ostringstream input;
    input << z << ".jpg";
    string filename = input.str();
    const char* filename1 = filename.c_str(); [image processing here...]

然后,我想使用cvSaveImage保存名为bwIMG01.jpg的图像结果。 EXP:

cvSaveImage("bwIMG01.jpg", imgBW);

我的问题是写更改每个图像的输出名称。我已尝试过以下代码,但这不起作用....

char savedImg [30];
string savedCode = "bw";
savedImg = savedCode+filename;
cvSaveImage(savedImg, imgBiner);

任何想法?

2 个答案:

答案 0 :(得分:0)

将其更改为:

cvSaveImage(string(savedCode+filename).c_str(), imgBiner);

建议:既然您正在使用C ++,那么您应该使用new C++ API代替它,它将直接起作用:

imwrite(savedCode+filename, imgBiner);

答案 1 :(得分:0)

请使用c ++ api和方便的cv :: format()代替:

cv::Mat imBW;
for ( int i=0; i<30; i++ )
    imwrite( format("bwIMG%02d.jpg", i), imgBW);

再次,请避免旧的c-api,它不再发达。