正如标题所说。我试图用argv和绝对路径加载图像并且它有效,但是相对路径它并没有。该映像位于可执行文件的同一目录中。我在Windows 7 64位上使用visual studio 2013和opencv 2.4.10。我怎么解决?
修改
这是我的代码:
include <iostream>
#include <fstream>
#include "opencv2\highgui\highgui.hpp"
#include "opencv2\stitching\stitcher.hpp"
#include "opencv2\core\core.hpp"
using namespace cv;
using namespace std;
void main()
{
vector< Mat > vImg;
Mat rImg;
vImg.push_back(imread("1.png"));
vImg.push_back(imread("2.png"));
vImg.push_back(imread("3.png"));
Stitcher stitcher = Stitcher::createDefault(true);
unsigned long AAtime = 0, BBtime = 0; //check processing time
AAtime = getTickCount(); //check processing time
stitcher.stitch(vImg, rImg);
BBtime = getTickCount(); //check processing time
printf("%.2lf sec \n", (BBtime - AAtime)
getTickFrequency()); //check processing time
namedWindow("Stitching Result");
imshow("Stitching Result", rImg);
waitKey(0);
}
我还尝试使用&#34; ./" &#34; /&#34; &#34; //&#34; &#34; \&#34;和&#34; \&#34;,但它仍无效!
答案 0 :(得分:0)
正如CTZStef所说,图像不能在sln文件夹中,而是在包含VC ++项目文件的文件夹中!
答案 1 :(得分:0)
我可以通过以下方式为您解决问题:
cd
到数据目录的根目录。然后使用绝对路径启动应用程序。/DDATA_DIR=C:\where\your\data\is
添加到编译器标志中,并在代码中使用vImg.push_back(imread("DATA_DIR/1.png"));
)通常,如果可能,我会将您的源代码与您的数据分开,而不是将其复制到解决方案文件的文件夹中。