opencv3很久前就配置好了,这次配置opencv2主要是因为要用到opencv2的库,目标是想实现x64编译opencv3,x86编译opencv2,然后就开始了漫长重复的配置过程。我的电脑是x64的,网上也有很多相关贴子。。但是吧。。怎么说呢,大概是我天资愚钝,反正我没弄出来,在综合多篇博客后终于成功了,下面就分享下我的配置过程
配置opencv3.4.1
这个配置很简单我参考的这篇博文:https://blog.csdn.net/qq_41175905/article/details/80560429
两个字,详细,这里就不叙述了。
配置opencv2.4.13
下载opencv2.4.13
下载链接:https://opencv.org/releases/page/6/
根据自己电脑的系统下载相关版本,这里我下载的是Windows版本。
将安装包解压到自己想要放的目录下,打开目录\opencv\build\x86后发现最高版本是VC12,然而VS2017与之匹配的是VC15,很多博客介绍说是直接用VC12,这个我试过,配置完后说x86与目标x64不匹配,还有些博主的这个目录打开有VC14,这是因为下载时是比2.4.13更高点的版本,比如2.4.13.6,如果有VC14的可以参考这篇博文:https://blog.csdn.net/qq_27923041/article/details/105763511?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.control&spm=1001.2101.3001.4242
但是注意这篇博文配置opencv2用的是x64来配置
还有如果就想用VC12,需要dll文件的可以在这里下载
链接:https://pan.baidu.com/s/1al1J1npon4D3bDs5kTM83Q
提取码:r7yu
我也在其他地方下载过,比如:
不过结局就是给我捆绑了无数软件,有些卸都卸不了,还有木马病毒,杀不了。
下载cmake
由于没有VC15,所以使用cmake进行接下来的配置。
Cmake下载地址:https://cmake.org/files/v3.10/
我下载的这个版本然后安装:
配置与VS2017相匹配的文件
参考博文:https://blog.csdn.net/dango_miracle/article/details/78681131
首先解压opencv2.4.13,里边的build文件可以删掉了,我这里自己新建了一个build1\vc15。
打开安装的Cmake
1、选择opencv文件下sources文件的路径
2、悬着想要保存的目标路径,也就是上文创建的build\vc15
3、选择好文件夹以后点击一下Configre,选择如下:
然后就开始跑,如下:
4
4、再点击一下configure
5、跑完之后点击Generate
6、最后点击open project,直接打开刚刚生成的工程
7、运行工程,我这里是这么选的
运行完后有一个失败
8、解决方案资源管理器下找到CMakeTargets文件下的INSTALL,右键选择生成,在Debug和Release各来一次,生成成功说明opencv编译成功了(我一次性成功了,没遇到失败)
配置系统环境变量
与opencv3一样,在系统变量PATH中添加bin路径,我的如下:
F:\Program Files (x86)\opencv-2.4.13\opencv\build1\vc15\install\bin
配置vs2017
接下来就很简单啦,跟opencv3差不多
1、新建一个空项目
带尺寸的图片:
这里的位置我放在如图的位置,这个是默认的。
2、打开属性管理器:属性-其他窗口-属性管理器
右键win32.user,点击属性
分别在包含目录和库目录添加:
包含目录:
F:\Program Files (x86)\opencv-2.4.13\opencv\build1\vc15\install\include\opencv2
F:\Program Files (x86)\opencv-2.4.13\opencv\build1\vc15\install\include\opencv
F:\Program Files (x86)\opencv-2.4.13\opencv\build1\vc15\install\include
库目录:F:\Program Files (x86)\opencv-2.4.13\opencv\build1\vc15\install\lib
点击如图所指位置是添加新的路径
在如图位置添加依赖项,点击应用后确定:
opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_ml2413d.lib
opencv_nonfree2413d.lib
opencv_objdetect2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_videostab2413d.lib
继续右键保存
3、重启电脑让环境变量生效
测试
1、打开vs2017,刚刚的工程文件,打开解决方案资源管理器,右键源文件
添加代码:
#include <iostream>
#include<core/core.hpp>
#include<highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("1.jfif");//图片路径(下载就是这个格式)
if (!image.data)
{
cout << "图片读取失败!" << endl;
system("pause");
return -1;
}
namedWindow("Img", 1);
imshow("Lena", image);
waitKey();
return 0;
}
我在我的.cpp文件夹下放了一个图片,名字为1.png
2、运行程序
当当当就出来了,接下来试一下x64
完美
上图片(图片来自百度),这里是png格式:
总结一下
1、一定要选择和vs相匹配的编译器,找不到就CMake吧
2、环境变量改变后要重启才会生效,如果出现了.dll文件缺失,就重启电脑,让环境变量生效,如果还缺失就下载相应的文件放在bin文件夹里。
3、配置opencv2时一定要选择x86,不管电脑是多少位,配置时对Debug|win32下手,这样才能实现x64配置opencv3,x86配置opencv2,我这里没有配置Release,配置完Release自己就配好了,因为属性里头的配置和平台均是不适用,如图:
注:未经作者允许请不要转载哟