卑微小编在线教学,因项目需求自学opencv,初步认识就觉得很难,没想到在安装上就给我了个下马威,尽管我已经小心翼翼的按照网上能找到的新人向教学视频文章一步一步做了,但是在做简单的图片读取时都遇到了这个问题。
功夫不负有心人,在我反复尝试检查之后终于莫名其妙的解决了!为什么莫名其妙,因为我也说不出所以然,但是在另一台电脑上按照这个方法也成功了,所以分享出来避免新人小白踩坑!
环境介绍
Opencv3.4.1 + VS2019
注:小编提供的OpenCV文件只适用于VS2019,
另提
VS版本 | cv版本 |
---|---|
Visual Studio 2003 | vc7 |
Visual Studio 2003 | vc7 |
Visual Studio 2005 | vc8 |
Visual Studio 2008 | vc9 |
Visual Studio 2010 | vc10 |
Visual Studio 2012 | vc11 |
Visual Studio 2013 | vc12 |
Visual Studio 2015 | vc14 |
Visual Studio 2017 | vc15 |
Visual Studio 2019 | vc15 |
目前最高好像就是vc15,所以17,19都用vc15就可了(若有出入欢迎指出)
为什么不用最新的Opencv库? ,在Opencv3.4.2之后有一些算法申请了专利,无法使用,建议使用该版本,Opencv3.4.1链接,提取码:gerv,注:该压缩包不带sources文件,不影响使用!
开始安装!
第一步–下载
首先下载压缩包并解压至本地,解压地址一旦确定就不要动了,后续要更改会很麻烦,我这里是将其解压至平时安装软件的目录(D:\Program);
打开压缩包我们会看到这些文件
没错这里只有一个build文件夹,上面提到过没有source文件,如果你下载的是官方的文件你将会看到:
第二步–环境变量设置
【此电脑】→【右击属性】→【高级系统设置】→【环境变量】→【Path】
Path中需要填入bin文件所在目录,我们打开OpenCV的文件夹中的bin目录
【OpenCV-3.4.1】→【build】→【bin】
然后将目录复制下来,双击path然后新建粘贴进去;
当然也可以【新建】→【浏览】然后一步一步点到bin文件目录下,完成后点击确定即可;
第三步–VS环境配置
打开vs新建一个空项目
【视图】→【其他窗口】→【属性管理器】
【属性管理器】→【Debug|x64】→双击【Microsoft.Cpp.x64.user】
【VC++目录】→编辑【包含目录】
在里面添加OpenCV中的include目录
主:需要添加3次,分别是opencv2目录,opencv目录和include目录
上面提到的我的OpenCV目录放在D盘的Program下,所以就像酱紫:
D:\Program\OpenCV-3.4.1\build\include\opencv2
D:\Program\OpenCV-3.4.1\build\include\opencv
D:\Program\OpenCV-3.4.1\build\include
可以直接敲进去同理也可以点击右边三个点浏览找到目录;
展开【C/C++】→【常规】→编辑【附加包含目录】
像上一步一样添加include目录;
展开【链接器】→【输入】→编辑【附加依赖项】
这里要添加lib文件夹里面的东西,但是无法浏览了只能手动输入地址;
当然也可以用文件管理器打开然后复制;
例如我的地址就像酱紫:
D:\Program\OpenCV-3.4.1\build\x64\vc15\lib
然后在目录后面加上*d.lib,像酱紫:
D:\Program\OpenCV-3.4.1\build\x64\vc15\lib\*d.lib
然后点击确定就ok了!
测试代码
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(int argc, char* argv()) {
Mat src = imread("D:/lbxx.jpg"); //这里填入图片的地址,注意斜杠的方向
if (src.empty()) {
cout << "can not load" << endl;
return -1;
}
namedWindow("lbxx", CV_WINDOW_AUTOSIZE);
imshow("lbxx", src);
waitKey(0);
return 0;
}
测试图片:
常见问题
问题一
首先一点,Opencv是运行在64位环境下的,但是如果没有设置,默认打开的项目是32位的,只需要
在这里改成x64就可以了
问题二
如果是这种问题,原因有很多,这里举例我遇到的几种情况:
1、代码有问题,检查代码!
2、图片路径有问题,注意斜杠的方向,如果方向对了还是不可以,就改成双斜杠,因为单斜杠可能会被转译;
Mat src = imread("D://lbxx.jpg");
3、之前我在看网上的教程时,教程让把库目录也更改
如果你更改了库目录,或者可执行文件目录,全部改成从父级继承;
如果还有其他更改项的同理即可;
问题三
如果你的vs2019的Debug|x64下没有Microsoft.Cpp.x64.user;
很简单重新安装vs2017;
写在最后
以上就是我在安装OpenCV环境遇到的问题,以及解决方法,如有出入欢迎指正!