可以自己进opencv官网下载opencv3.4.1,github上下载opencv3.4.1_contrib。然后自己make编译
cmke安装教程 https://blog.csdn.net/u011231598/article/details/80338941
opencv各版本 https://github.com/opencv/opencv/releases
opencv_contrib各版本 https://github.com/opencv/opencv_contrib/releases
配置:cmakecmake-3.11.2-win64-x64+win7(64位)+vs2017+opencv3.4.1+opencv_contrib3.4.1
我要生成的是Debug x64的
安装教程参考
https://blog.csdn.net/huitailangyz/article/details/81662947
https://blog.csdn.net/qq_34360180/article/details/66978979
https://blog.csdn.net/LOVELESSYI/article/details/79946859
https://blog.csdn.net/u010248552/article/details/80416751
这里注意一下cmake的版本。之前我下的最新cmake-3.14.3-win64-x64,然后点击configure弹出选择VS的界面,只能选Visual Studio 15 2017,生成OpenCV.sln用vs2017打开后默认是Debug win32,要么出问题,要么最后生成的install文件夹里是x86的而不是x64。好像低版本的也不一定能用,3.11.2实测可用,就是configure有点慢。(下面cmake的照片就没换了,基本没啥差别)
安装路径会有所不同,我选择装在H盘
文件路径
H盘新建文件夹opencv3.4.1,文件下里面再新建文件夹build
将opencv3.4.1和opencv_contrib3.4.1解压到:H:\opencv3.4.1
下删除安装包
此时H:\opencv3.4.1文件下有三个文件夹build(空)、opencv3.4.1、opencv_contrib3.4.1
cmake-gui 中操作(安装步骤)
-
打开cmake-gui.exe
-
在:
Where is the source code
中选择:H:/opencv3.4.1/opencv-3.4.1
目录 -
在:
Where to build the binaries
中选择:H:/opencv3.4.1/build
>目录
-
点击:
configure
弹出选择VS的界面,我选的是:Visual Studio 15 2017 win64
,点击:Finish
-
咦,出现了智障错误,查看窗口底部的红色错误信息,说是没发现CMakeLists.txt文件
CMake Error: The source directory “H:/opencv3.4.1/opencv-3.4.1” does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
解决:H:/opencv3.4.1/opencv-3.4.1目录会发现里面还有一个opencv-3.4.1目录(H:/opencv3.4.1/opencv-3.4.1/opencv3.4.1)。将里面的文件拷到H:/opencv3.4.1/opencv-3.4.1下然后删除H:/opencv3.4.1/opencv-3.4.1/opencv3.4.1即可,可以看到H:/opencv3.4.1/opencv-3.4.1/opencv3.4.1目录下有CMakeLists.txt文件
-
再次点击configure可以看到如下
-
等待完成,出现一片红色的区域。在变量区中找到:
OPENCV_EXTRA_MODULES_PATH
,将其选择为:H:\opencv3.4.1\opencv_contrib-3.4.1\modules
目录,并勾选:BUILD_opencv_world
,再点击:configure
。
直到变量区没有红色变量,否则反复点击:configure
。最后点击:generate
-
然后再点击:
Open Project
这会自动打开vs2017 ,也可以到Build里找到:OpenCV.sln
打开。
打开vs2017后一般可以直接看到【解决方案资源管理器】一栏,没有就点击【视图v】-【解决方案资源管理器p】,可以看到OpenCV的解决方案
vs中操作
因为我选择cmake编译时选择的Visual Studio 15 2017 win64,所以打开OpenCV时默认的是:Debug x64
- 右键重新生成解决方案(好久,超怕电脑死机),出现大量warming, :
C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
。暂时不想管它
可能错误:重新生成解决方案时出现大量错误
参考: https://blog.csdn.net/LOVELESSYI/article/details/79946859 - 如果不是Debug x64的可能要配置管理器
- 解决方案里点开:
CmakeTargets–>INSTALL
,右键:仅用于项目->仅生成INSTALL
- 生成完debug的库后,改为release,x64,再来一遍上面install操作。(改成release,x64时,install出现错误,不管了,我只要Debug x64)(可能是因为没用管理员方式打开的)
- build大概有6.09G,生成后把opencv和contrib综合了起来。所以配置的时候只需要用build/install了。
配置过程
系统环境变量
右键:计算机->属性->高级系统设置->环境变量->Path->编辑
,加上::H:\opencv3.4.1\build\install\x64\vc15\bin
。注意H:前面还有一个冒号。貌似电脑要重启才能生效
vs中配置
配置库目录和包含目录
- 新建空C++项目
- 项目中添加C++文件,左上角菜单选项:
视图->其他窗口->属性管理器
- 属性管理器中,右键:
Debug|x64
属性,找到:通用属性->VC++目录->包含目录
添加
:H:\opencv3.4.1\build\install\include
:H:\opencv3.4.1\build\install\include \opencv
:H:\opencv3.4.1\build\install\include \opencv2
【确定】-【应用】 - 【库目录】
库目录添加:H:\opencv3.4.1\build\install\x64\vc15\lib
【确定】-【应用】
- :
通用属性->链接器->输入->附加依赖项
貌似要添加所有H:\opencv3.4.1\build\install\x64\vc15\lib 的所有带d的lib,这里只有两个
:opencv_world341d.lib
:opencv_img_hash341d.lib
其中341表示版本号3.4.1,d表示debug版 - :
Debug|x64->Microsoft.Cpp.x64.user
,右键保存 - 把:
opencv\build\install\x64\vc15\bin
下的文件(:opencv_world341d.dll
和:opencv_img_hash341d.dll
),全部复制到:C:\Windows\SysWOW64
和:C:\Windows\System32
里 - 在VS2017工具栏找到:
调试->选项
,找到:调试->常规
,勾选:启用源服务器支持
,:调试->符号
,勾选:Microsoft符号服务器
,确定。
测试
注意,图片要和.cpp文件放在同一目录下
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("死亡之翼.jpg"); //存放自己图像的路径
namedWindow("showtime", 0);
imshow("showtime", image);
waitKey(0);
return 0;
}
可能错误,LNK1112: 模块计算机类型“X64”与目标计算机类型“x86”冲突
如果出现计算机类型不匹配的话,可能要右击项目:属性->链接器->高级->目标计算机
,改为:MachineX64 (/MACHINE:X64)
,这时查看下vc++目录的包含目录、库目录等是否要重新添加
可能错误:无法查找或打开PDB文件
参考:https://www.cnblogs.com/wxl845235800/p/7206767.html