0.前言
将基于低版本opencv(比如2.3.1)的程序,在vs2015+opencv3.0的环境下编译会报错:
“未声明的标识符:SiftFeatureDetector ”
“未声明的标识符BruteForceMatcher”
查阅才知,sift、surf等等已经被移到opencv_contrib模块,如果需要在高版本opencv中使用到opencv_contrib模块,则需要自己进行编译。其编译和配置流程,在github.com:opencv/opencv_contrib的README里写了:
那么现在开始自行编译和配置吧。根据本文内容,成功率应该是99.99%,中途可能会遇到很多问题,我也会再总结一篇。
通过不懈努力,最终成果如下:
一.准备:系统环境和工具
1)系统:win 10 64位
2)opencv:3.0.0
3)opencv_contrib:3.0.0
4)visual studio:2015
5)CMake:3.8.0
1.安装CMake3.8.0
根据使用的操作系统选择相应的版本进行下载和安装即可(点击下载):
2.下载opencv3.0.0
3.安装opencv3.0.0
将opencv安装到指定目录,比如:H:\opencv
4.下载opencv_contrib3.0.0
附加模块opencv_contrib最好下载与opencv为同一版本的。
5.解压opencv_contrib 3.0.0
将下载好的附加模块 opencv_contrib-3.0.0.zip 解压到指定位置,比如:C:\Users\september\Desktop\opencv_contrib-3.0.0
解压后,opencv_contrib-3.0.0的结构目录如下:
二.编译
1.打开cmake
2.输入opencv源文件路径
在where is the source code输入opencv地址/sources地址, 比如:H:/opencv/sources
3.输入保存编译结果的路径
在where to build the libraries输入保存编译结果的地址, 比如:H:/opencv/mybuild
比如下图:
4.第一次编译
(1)点击configure,选择本机的编译器,最后四位数字才代表vs的版本,比如图中的2015,代表的是visual studio 2015。
(2)点击finish,开始第一次编译。
如果编译器的版本选错,第一次编译时会出错:
no cmake_c_compiler could be found.
no cmake_cxx_compiler could be found.
第一次编译完成后会显示编译opencv所需要的参数,如图:
5.第二次编译
(1)在参数列表中,将Name为OPENCV_EXTRA_MODULES_PATH的Value设置为opencv_contrib-3.0.0的路径/modules,例如:C:/Users/september/Desktop/opencv_contrib-3.0.0/modules
可以在search栏中搜索OPENCV_EXTRA_MODULES_PATH变量,如下图。