C++ Opencv imread不适用于相对路径
正如标题所说。我试着用argv和绝对路径加载一个图像,但用相对路径却不行。映像位于可执行文件的同一目录中。我正在windows 7 64位上使用visual studio 2013和opencv 2.4.10。我该如何解决 编辑 这是我的密码:C++ Opencv imread不适用于相对路径,c++,opencv,imread,C++,Opencv,Imread,正如标题所说。我试着用argv和绝对路径加载一个图像,但用相对路径却不行。映像位于可执行文件的同一目录中。我正在windows 7 64位上使用visual studio 2013和opencv 2.4.10。我该如何解决 编辑 这是我的密码: include <iostream> #include <fstream> #include "opencv2\highgui\highgui.hpp" #include "opencv2\stitching\stitcher.h
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);
}
包括
#包括
#包括“opencv2\highgui\highgui.hpp”
#包括“opencv2\stitching\stitcher.hpp”
#包括“opencv2\core\core.hpp”
使用名称空间cv;
使用名称空间std;
void main()
{
向量vImg;
马口铁;
vImg.push_back(imread(“1.png”);
vImg.push_back(imread(“2.png”);
vImg.push_back(imread(“3.png”);
Stitcher-Stitcher=Stitcher::createDefault(true);
无符号长AAtime=0,BBtime=0;//检查处理时间
AAtime=getTickCount();//检查处理时间
缝合器。缝合(vImg、rImg);
BBtime=getTickCount();//检查处理时间
printf(“%.2lf秒\n”,(BBtime-AAtime)
getTickFrequency());//检查处理时间
namedWindow(“缝合结果”);
imshow(“缝合结果”,rImg);
等待键(0);
}
我也试着使用“/”/“/”/“\”和“\”,但仍然不起作用 正如CTZStef所说,图像不能在sln文件夹中,而是在VC++项目文件所在的文件夹中 我可以为您提供以下解决问题的方法:
cd
插入数据目录的根目录。然后使用应用程序的绝对路径启动应用程序vImg.push_back(imread(“data_DIR/1.png”);
)通常,如果可能的话,我会将您的源代码与数据分开,而不是将其复制到解决方案文件的文件夹中。请提供一些代码请提供一个示例代码和您正在谈论的目录的内容。我已经用这些代码编辑了文章!我认为您的图像应该与sln位于同一文件夹中,如果您真的想这样做:)我复制了sln文件夹中的图像,但仍然无法工作:/