搞定opencv+contrib+codeblocks
- 一、安装资源准备
- 二、环境配置
-
- (一)Mingw64安装
- (二)opencv-3.4.0安装教程
- (三)CMake安装配置
- (四)编译文件安装
- 三、编译器配置
-
- 配置codeblocks
- 创建项目
- 四、参考博文
一、安装资源准备
- CMake-3.10.3-win64-x64
- Mingw_x86_64_7.3.0
- opencv-3.4.0
- Codeblocks-17.12
- opencv_contrib-3.4.0
- 第一次配置下载资源.dll
- 第二次配置 下载资源.i/dat
以上资源百度云盘链接:放血大派送资源包 提取码:itug
二、环境配置
(一)Mingw64安装
资源包中mingw_x86_64-7.3.0.7z是离线包1 ,已经安装完成,解压并放置在明确的英文路径下(例:D:\Aopencv\mingw64)
配置系统环境变量: 虽然默认各位会配置环境变量,但是还要提一下。
右键点击“此电脑“–> 单击【属性】–> 【高级系统设置】–> 【环境变量】–> 双击系统变量里的【Path】–> 【新建】–> 添加mingw64的bin路径(例:D:\Aopencv\mingw64\bin)
(二)opencv-3.4.0安装教程
下载资源包中的opencv-3.4.0-vc14_vc15.exe,安装到设定的文件夹中(例:D:\Aopencv\opencv)。
配置环境变量:
上面那个图中的 D:\Aopencv\opencv\build\x64\v14\bin 添加到路径即可。
(三)CMake安装配置
!!!CMake的配置是个重点!!!
初次配置这里会出现很多 Error,根本原因就是翻不了墙,我也是╮(╯▽╰)╭
下载资源包中的cmake-3.10.3-win64-x64.msi,安装到英文路径下2。
1.打开安装完成的CMake(Cmake gui);
2.如图填写,其中D:/Aopencv/opencv/binaries 为新建文件夹,可以自行起名;
3.如图操作,点击【Next】;
4.
图中 C 选择 D:\Aopencv\mingw64\bin\x86_64-w64-mingw32-gcc.exe
图中C++选择 D:\Aopencv\mingw64\bin\x86_64-w64-mingw32-g++.exe
点击【Next】;
5.点击【Configure】,进行快乐的第一次配置。
If You Have a VPN,You Will Be Happy。
6.很明显你不快乐!
第一次配置开始。
由于高墙的原因这两个动态链接库文件 opencv_ffmpeg.dll 和 opencv_ffmpeg_64.dll
会下载超时,资源包中已经为你精心准备好了。
所以只需要将资源包中 第一次配置下载资源 中的两个动态链接库放置在 D:\Aopencv\opencv\binaries\3rdparty\ffmpeg目录下,再单击 【Configure】 配置一下,直至红色消失,提示你 Configure done,才算完成第一次配置。
7.丧心病狂的第二次配置,由于opencv的不断发(冗)展(杂),出现了opencv_contrib(相当于第三方库,例如SIFT的库就在这里面),所以需要第二次配置。
首先下载资源包的 opencv_contrib-3.4.0,
解压到相应目录(例D:\Aopencv\opencv_contrib)。
(1)Cmake中,取消ENABLE_PRECOMPILED_HEADERS的勾选3,
勾选ENABLE_CXX11、OPENCV_ENABLE_NONFREE
如图:
(2)OPENCV_EXTRA_MODULES_PATH的路径设置为opencv_contrib-3.4.04的解压目录下的modules,如图:
8.单击【Configure】进行第二次配置。
依旧因为访问不了外网,这里会有很多文件下载超时,解决方法如下5:
(1) tiny-dnn-1.0.0a3的压缩包下载失败。
下载资源包中第二次配置下载资源 中的tiny-dnn-1.0.0a3压缩包,将其解压到D:\Aopencv\opencv\binaries\3rdparty\tinydnn下,结果如图所示:
(2)xfeatures2d下n个文件下载失败。
下载资源包中 第二次配置下载资源 中xfeatures2d下的n个文件,放置在
D:\Aopencv\opencv\binaries\downloads\xfeatures2d文件夹下,结果如图:
(3)face_landmark_model.dat下载失败6。
这个可能会xue微的麻烦一点。
<1> 先下载资源包中第二次配置下载资源中face_landmark_model.dat;
<2> 放置在D:\Aopencv\opencv\binaries\testdata\cv\face文件夹下面,没有相应文件夹就自己新建。
<3>打开D:\Aopencv\opencv_contrib\modules\face文件夹下的CMakeLists.txt
将第19行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
改为:
D:/Aopencv/opencv/binaries/testdata/cv/face"
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
其实就是指定face_landmark_model.dat所在的位置,这个文件夹在D:\Aopencv\opencv\binaries\CMakeDownloadLog.txt中有记录,我的是D:\Aopencv\opencv\binaries\testdata\cv\face,有兴趣的可以自己查看。
以上步骤确保Cmake第二次配置的资源已经准备好
再次点击【Configure】完成第二次配置,系统提示Configure Done
点击【Generate】生成编译文件,系统提示 Generate Done
(四)编译文件安装
window+R输入cmd进入命令行。
进入binaries文件夹下,输入mingw32-make install,在网好的地方等待安装完成。
三、编译器配置
配置codeblocks
1.安装并打开codeblocks
2.
选择【Settings】 -> 【Debugger】
单击【Create Config】
取一个名字,我们这里取名gdb64
3.单击GDB/CDB debugger下面我们创建的gdb64,添加mingw64下gdb.exe的路径:D:\Aopencv\mingw64\bin\gdb.exe,然后点击【ok】
4.
选择【Settings】 -> 【Compiler】
单击【Copy】,我们命名 GNU GCC Compiler(x64)
然后选择【Toolchain executables】,按图填写【Program Files】中的各项:
5.选择【Linker settings】,Link libraries中【Add】添加D:\Aopencv\opencv\binaries\install\x64\mingw\bin下的所有链接库文件(shift连选一次搞定)。
6.选择【Search directories】,添加三个目录
D:\Aopencv\opencv\binaries\install\x64\mingw\include
D:\Aopencv\opencv\binaries\install\x64\mingw\include\opencv
D:\Aopencv\opencv\binaries\install\x64\mingw\include\opencv2
我把D:\Aopencv\opencv\binaries\install下的include文件夹复制到了D:\Aopencv\opencv\binaries\install\x64\mingw下面,和lib、bin在一起,后面创建opencv项目时会方便一点。
创建项目
1.【Create a new project】
创建选择opencv项目
2.起一个文件名,选择文件生成位置,单击【Next】
然后填写include、lib、bin三个文件夹所在的父目录D:\Aopencv\opencv\binaries\install\x64\mingw,我们刚刚提到的方便就在这,然后点击【Next】
3.这里填写版本号,以及三个文件夹所在的位置。可以更改完版本号直接【Next】,这里我老实巴交的填写了他们的路径。。。
4.一切工作工作完成
运行项目里Source文件夹下的main.cpp,看一下施瓦辛格吧!
PS: 实测没问题。对于SIFT算法的程序中有如下改动:
//xfeatures2d::SiftFeatureDetector featureDetector;
Ptr<xfeatures2d::SiftFeatureDetector> featureDetector = xfeatures2d::SiftFeatureDetector::create();
//featureDetector.detect(trainImage_gray, train_keyPoint);
featureDetector->detect(trainImage_gray, train_keyPoint);
————————————————
版权声明:本文为CSDN博主「Bryan_QAQ」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Bryan_QAQ/article/details/102952256
就是将SiftFeatureDetector的声明和对函数的调用改为指针形式。
四、参考博文
codeblocks17.12 + opencv3.4.0 开发环境搭建 ??
CodeBlocks+OpenCV3.2环境搭建 ??
Windows平台下CMake+CodeBlocks+OpenCV(opencv_contrib)环境配置 ??
OpenCV学习笔记(六)——配置扩展模块 ??
opencv-contrib在cmake中出现下载错误的解决 ??
cmake3.14.0+opencv_contrib4.0.1+VS2017配置过程及可能出现的错误和问题 ??