(详细)vs2017配置opencv,一次性配置项目环境属性,解决遇到的无法打开opencv2/core/core.cpp
一.根据自己电脑型号下载合适的opencv,我的是3.4.1
网址:https://opencv.org/releases.html#
二。解压
双击下载好的安装包,Extract to到自己想安装的路径(路径最好不要有中文!!)
解压路径后点Extract即可完成解压,解压后会自动生成一个opencv的文件夹
三。配置系统变量
右击此电脑——属性——高级系统设置——环境变量——Path——新建
将你解压的opencv文件夹中的***opencv\build\x64\vc14\bin路径添加到当中
点击确定,确定。
四。文件配置
1.找到OpenCV的opencv_world341d.dll
文件,在**\opencv\build\x64\vc14\bin
路径下
然后把路径下的3个.dll
文件复制到C:\Windows\System32
路径下 。否则新建项目后会报错:找不到 .dll(动态链接库文件)
2.将**\opencv\build\x64\vc14\bin目录下面的opencv_world341.dll和opencv_world341d.dll文件复制到C:\Windows\SysWOW64这个文件夹里
五。配置vs2017属性:
1、新建一个空项目或控制台项目
2、进入属性管理器,菜单栏->视图->其他窗口->属性管理器
3、对Debug|X64进行配置,右键Microsoft.Cpp.x64.user,点击属性
4、这里我们对属性中的 VC++目录->包含目录->编辑:
加入安装的完整路径:**\opencv\build\include
**\opencv\build\include\opencv
**\opencv\build\include\opencv2
5.VC++目录->库目录->编辑
加入:**\opencv\build\x64\vc14\lib
6.链接器->输入->附加依赖项中加入 :opencv_world341d.lib
7.对项目的属性进行配置:
视图—>其他视图->属性管理器->
对Release|X64进行配置,右键Microsoft.Cpp.x64.user,点击属性
链接器->输入->附加依赖项中加入:opencv_world341d.lib
注意:如果是opencv其他版本,只需要将将上述的依赖项文件稍作修改即可;eg:如果是opencv版本3.4.0,只需要将dll名字改为opencv_world340d.lib即可
8.配置结束,但是vs这一栏要用x64,符合上面的配置,不然会报错,至于Debug下面会解释
六。测试
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int main() { // 读入一张图片 Mat img = imread("C:\\1.jpg"); // 创建一个名为 "图片"窗口 namedWindow("图片"); // 在窗口中显示图片 imshow("图片", img); // 等待1000 ms后窗口自动关闭 waitKey(1000); return 0; }
七。可能遇到的各种问题:
1.找不到.dll:
找到OpenCV的opencv_world341d.dll
文件,在**\opencv\build\x64\vc14\bin
路径下
然后把路径下的3个.dll
文件复制到C:\Windows\System32
路径下
2.启动程序后无法打开源文件 iostream:
此处问题还可能出在包含目录上。在要把从父级或项目默认设置继承
复选框勾上,因为包含目录
修改了系统的include宏的值。在属性中的包含目录、源目录等中勾选从父级或项目默认设置继承,(我用的这个方法)或者全局范围内寻找#include<xxxx.h>
中的xxxx.h
的搜索目录。(这是百度到的,但是我没用这个方法,)还有一个方法我也没用,毕竟windows文件不想随意动,详看https://blog.csdn.net/hackerwin7/article/details/8456536。
3.无法打开opencv2/core/core.cpp
(1)先看包含目录有没有问题:
**\opencv\build\include
**\opencv\build\include\opencv
**\opencv\build\include\opencv2
这样的路径可能存在:#include opencv2/core/core.hpp 中opencv2已经在包含目录中的问题。。。。
所以只要把路径中重复的opencv2去掉就好啦。因为opencv中很多的相关文件都包含了opencv2,
所以,把‘包含目录’中的第三项改成和第一项一样的(不能删第一项,还必须是三项)
(2)如果上面的方法还不行,就把包含目录改回去,然后看上面图中vs的debug,x64有没有问题
可能是因为visual studio的生成模式Debug/Release搞的鬼,跟代码无关。
其实VS提供的Debug和Release两种调试模式完全使用不同的两套类库,所以在设置的时候一定要看清,看下图:
这两个要一致,不然哭死……
八。怎样一次性配好OpenCv,后面建项目时不再一次次配环境?
(1)打开你建成功的第一个测试文件,点击:视图,其他窗口,属性管理器,右击Debug|64(根据你的配置来选,可以都生成一下,以防万一,我只生成了对应的一个,是没有问题的),添加属性表,
编辑名字,保存,记住保存的位置,此时Debug|64下已经有了属性表;
(如果是新建的项目,需要双击属性表进行上面讲解的配置……包含目录啥的)
(2)新建一个项目,直接找到属性管理器,右击Debug|64,添加现有属性表,找到刚刚存的属性表(后缀是 .props),确定。
以后每次建项目就可以直接添加属性表了。
运行。。。。结束