OpenCV:如何使用cv :: imwrite保存图像而不覆盖它们

时间:2018-12-15 21:05:20

标签: c++ opencv opencv3.0

我有一个小的应用程序,可以保存图像Using。我遇到的问题是,我一直试图找到一种在匹配裁切后的图像后将其存储的方法。我成功提取了裁剪后的图像,但在同一文件夹中将其覆盖,而不是仅添加到该文件夹​​中。 如何保存图像而不覆盖它们?

请参见下面最重要的代码:

stereo.h

using cv::imwrite

stereo.cpp

public:
    void cropMatches(int xa, int ya, int xb, int yb);

请说明如何解决此问题。

1 个答案:

答案 0 :(得分:0)

instereo.h:

public:
void cropMatches(int xa, int ya, int xb, int yb);

private:
int counterA=0;
int counterB=0;

在stereo.cpp中

void StereoCal::cropMatches(int xa, int ya, int xb, int yb){
cv::Point ptA=cv::Point(xa, ya);
cv::Point ptB=cv::Point(xb, yb);
cv::Size sz;
sz.height=regionSize;
sz.width=regionSize;

cv::Mat regionA, regionB;
cv::getRectSubPix(currentImages.getA().get8Bitmap(),sz,ptA,regionA);
cv::getRectSubPix(currentImages.getB().get8Bitmap(),sz,ptB,regionB);
std::string path = "/home/path/to/folder/";
std::string outA = path+"cropA_"+std::to_string(counterA++)+".tiff";
std::string outB = path+"cropB_"+std::to_string(counterB++)+".tiff";
cv::imwrite(outA,regionA);
cv::imwrite(outB,regionB);

}