简介
笔者借助某位大神的通过CMake方式安装配置OpenCV3.4.1(2018-5-31),但最终运行Demo程序时没能达到预期效果,经过一番调试终于成功(备注:这位大神的安装OpenCV时的过程是没有问题的,值是新建工程Demo时没有考虑到例如不同版本带来的一些细节问题),于是决定写一份较为详细的教程
笔者安装环境
Win10 x64
Visual Studio 2017
下载安装OpenCV
1. 安装CMake工具
1)说明:相当于一个由OpenCV源压缩包配置OpenCV的辅助工具,当然也有直接安装OpenCV的方法,笔者没试过故不谈。
2. 下载OpenCV
进入OpenCV,点击Sources就会弹出"opencv-3.4.1.zip"下载窗口,下载完毕就可以准备安装
3.安装OpenCV
1)注意安装OpenCV的版本和电脑的Visual Studio版本!!!
2)配置系统环境变量时一定要注意该路径下是否都有结尾带d (Debug)和不带d(Release)的dll文件,例如笔者对应的路径就没有带d的 dll文件
此时可以直接去“...opencv-3.4.1_VS2017_x64(这个文件夹是自建的,具体看大神博客)in"路径下查看会发现有Debug和Release两个文件夹, 打开文件夹会发现所有dll文件都在这两文件夹里面,因此系统环境变量最好是包含两个文件,也可以直接把文件复制到你想要包含的文件夹,别太奇葩就行。
OpenCV测试示例
1. 新建Visual Studio工程
新建C++空项目(这个应该没什么好说的把),并把工程配置成x64
2.配置属性页
1)Debug
打开属性管理器(顶部菜单栏的视图-其他窗口-属性管理器)
包含目录有三个
...opencv-3.4.1_VS2017_x64installinclude
..opencv-3.4.1_VS2017_x64installincludeopencv
..opencv-3.4.1_VS2017_x64installincludeopencv2
而库目录笔者建议选择"...opencv-3.4.1_VS2017_x64libDebug",就是一定要包含带d的.lib文件,笔者按照大神博客选择的目录是没有带d的,lib文件的,这足足坑了我一会,,,
然后"OpenCV3.4.1_VS2017_Debug_x64属性页"窗口中点击"链接器-输入",新建附加依赖项,把上文看到的lib文件的名字都复制进去
注意不同OpenCV版本的lib名字不一样,OpenCV3.4.1如下,如果版本不同就得一个一个把名字复制到记事本再粘贴了,注意换行
opencv_calib3d341d.lib
opencv_core341d.lib
opencv_dnn341d.lib
opencv_features2d341d.lib
opencv_flann341d.lib
opencv_highgui341d.lib
opencv_imgcodecs341d.lib
opencv_imgproc341d.lib
opencv_ml341d.lib
opencv_objdetect341d.lib
opencv_photo341d.lib
opencv_shape341d.lib
opencv_stitching341d.lib
opencv_superres341d.lib
opencv_ts341d.lib
opencv_video341d.lib
opencv_videoio341d.lib
opencv_videostab341d.lib
此时Debug模式就配置好了,然后就已经可以Debug模式测试Demo了,新建"Demo.cpp"文件,复制一下代码,
#include <opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
cout << "OpenCV Version: " << CV_VERSION << endl;
Mat img = imread("1440.jpg");
imshow("1440", img);
waitKey(0);
return 0;
}
并在工程目录下放入一张如名为"1440"的图片文件
opencv_core341.lib
opencv_dnn341.lib
opencv_features2d341.lib
opencv_flann341.lib
opencv_highgui341.lib
opencv_imgcodecs341.lib
opencv_imgproc341.lib
opencv_ml341.lib
opencv_objdetect341.lib
opencv_photo341.lib
opencv_shape341.lib
opencv_stitching341.lib
opencv_superres341.lib
opencv_ts341.lib
opencv_video341.lib
opencv_videoio341.lib
opencv_videostab341.lib