按网上正常的步骤完成vs2010上opencv的安装,然后就是兴奋的开始测试编程了,但是一个坑爹的问题让我纠结了半天。话不多说,先还原问题。
测试的源代码如下:
#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;
int main() {
Mat img=imread("psu.jpg");
cvNamedWindow("游戏原画");
imshow("游戏原画",img);
waitKey(10000);
return 0;
}
然后测试的时候就出现了如下的问题
就是opencv_core2410d.dll这个文件的问题,在网上搜了各种方法,说什么权限和图片绝对路径什么的原因了,都尝试过了,全都不行,而且安装配置我也重新弄了两三遍,还是不对,整的我都要崩溃了。
最后我忘记从哪看到了一段代码中,文件路径中目录之间使用的是双斜杠”\”,而不是单斜杠”\”。如我的代码中绝对路径为F:\opencv\test\psu.jpg,然后我改成了F:\\opencv\test\\psu.jpg这个路径方式,跑了一下,发现竟然跑通了。
我后面上网查了一下这个问题,发现opencv中读取文件路径时,默认把”\”读取为转义字符,所以如果要得到正确的文件路径,在写路径的时候应该使用”\\”的方式。
最后看来,这个问题的根本原因还是在于文件路径的问题,虽然网上有些博客提到了路径,但并没有说明路径格式的问题,所以对于新手来说,我们就钻入了一个死胡同。
希望我的这篇文章对想学opencv的新手有所帮助吧,至少能够避免这个坑。