OpenCV3.4.1+OpenCV_contrib+VS2013配置(精准无错)
Opencv3.4.1和Opencv_contrib的下载(要对应的版本)
首先要获得OpenCV v3.4.1(最新的稳定版本)。您可以从以下几种选项中进行选择:
- 从SourceForge下载官方安装程序。该软件包包含Windows的源代码和预构建的二进制文件。您应该得到该文件opencv-3.4.1-*.exe。sources 因为我们要构建自己的二进制文件,所以我们仅需要此程序包中文件夹的内容。
注意:此软件包不包含额外的opencv_contrib模块,因此您应使用下面列出的其他选项之一来获得它。
- (推荐)直接从GitHub下载源tarball。这包括下载以下两个存档:
- 所述opencv源(标签3.4.1):
https://github.com/opencv/opencv/archive/3.4.1.zip - 所述opencv_contrib源(标签3.4.1): https://github.com/opencv/opencv_contrib/archive/3.4.1.zip
- 所述opencv源(标签3.4.1):
- 从GitHub克隆Git存储库。再次有两个部分:
- 主opencv存储库: git clone
https://github.com/opencv/opencv.git
- 额外的opencv_contrib存储库: git clone
https://github.com/opencv/opencv_contrib.git
克隆存储库后,您需要3.4.1 在两个(git checkout tags/3.4.1)中都切换到稳定标签。
注意:您需要git使用msysgit或Cygwin或使用图形用户界面(例如 TortoiseGit,GitHub Desktop,SourceTree或SmartGit)从命令行访问。
根据您在上面选择的选项,将文件提取或移动到所需的位置。例如,对其进行设置,以便最终在以下路径中获得这些文件:
C:\dev\opencv\README.md
C:\dev\opencv_contrib\README.md
CMake软件的下载(无需安装),编译opencv
下载cmake-gui工具:http://www.cmake.org/cmake/resources/software.html
选择不安装版的,根据自己的机型选择X86或者X64,下载完成后,直接解压即可使用,不必安装。
由于下载慢的原因,不能一步步截图,以下将采用下面用到相关链接第一个。在相关链接的基础上进行增加自己的一点见解,和遇到的问题,以及处理
配置
1.打开cmake-gui\bin目录下的cmake-gui.exe工具:
2.填写相应参数,包括:OpenCV源码目录和OpenCV.sln工程的导出目录,开始导出OpenCV.sln工程:
Where is the source code是opencv源码路径,即“源路径”
Where to build the binaries是要生成opencv的vs工程路径,即“目的路径”
第一次导出时需要设置后面用来编译此OpenCV.sln工程的VS的版本(这里特别要注意的是,自己机器上是否装有相应的VS版本,如果没有装,还是要编译就会出错,可能是找不到对应的工具原因,以及选择X86和X64),这里用的是VS 2015,也可以选择Visual Studio 10,就能在VS2010上使用:
设置完成之后点击“Generate”开始生成工程:
完成:
成功之后会看到一个Configure done,表示可以进行下一步了。
会看到一片红底的文件名。
先不用理会它们,找到一个叫OPENCV_EXTRA_MODULES_PATH的地方
z在这里写入解压后的opencv_contrib包中的modules文件路径,例如:E:/opencv_contrib3.0.0/modules
填好路径之后再点击Configure按钮,会发现有一部分文件名底色变为白色。
持续点击Configure按钮,直到没有红底文件名:
3.加入CMAKE_DEBUG_POSTFIX
点击add Entry,添加CMAKE_DEBUG_POSTFIX选项,设置为d,用于区分debug和release版本,否则编译安装时debug版本会被release版本覆盖。
然后,可以通过CMAKE_INSTALL_PREFIX设置编译的库的输出目录,默认输出目录为E:/opencv/opencv_write/install(自己写的不一样)
再次点击config。
此时会自动从外网下载一些文件,需要一些时间但并没有卡住,最后成功config。
点击generate,
此时会在指定的的文件夹中生成如下文件:
点击OpenCV.sln文件,在生成的build64文件中找到OpenCV.sln,双击打开
生成install文件,找到CMakeTargets文件目录中的INSTALL,并点击生成
点击生成后会进入编译状态,大概需要编译10分钟左右,
成功后生成一个install文件,注意此时编译后的结果中只有debug模式的结果,可以在debug模式下编译后再将模式调为release模式编译,这样生成的install文件中就即有debug的lib文件又有release的lib文件了。
Config时可能会出现的错误(现在见到过的):
1.下载错误,原因是因为ocv_download函数使用时把PACKAGE错写成filename
解决方法:http://blog.csdn.net/qsy2000/article/details/70158537
看到全白的文件后,就可以点击Generate按钮进行生成了,当看到Generate done 的提示时,在cmake的操作就结束了。
接下来是在VS中的操作:
打开刚刚生成文件的目录(就是上面填的目录),找到Opencv.sln,用vs打开。
然后再在“解决方案Opencv”右键点击 “生成解决方案”
如果这时弹出一个
解决方法是:
具体说就是打开位于opencv_contrib-3.1.0\modules\bioinspired\src\opencl文件夹:
打开retina_kernel.cl,把注释的//*********改成别的或者删掉即可。
此错误可以参照:http://blog.csdn.net/github_32886825/article/details/53347507?locationNum=6&fps=1
如果debug和release都没问题,都显示ok的话。
找到一个叫INSTALL的项目,右键-》生成,成功后会在目录中找到一个install文件夹,里面就是包含了contrib的opencv3.0.0了
请根据自己需要的是Debug还是Release进行选择。
接下来就是按照opencv2.x的办法给vs配置了
要添加的lib如下(备忘)
opencv_aruco320.lib
opencv_bgsegm320.lib
opencv_bioinspired320.lib
opencv_calib3d320.lib
opencv_ccalib320.lib
opencv_core320.lib
opencv_datasets320.lib
opencv_dnn320.lib
opencv_dpm320.lib
opencv_face320.lib
opencv_features2d320.lib
opencv_flann320.lib
opencv_fuzzy320.lib
opencv_highgui320.lib
opencv_imgcodecs320.lib
opencv_imgproc320.lib
opencv_line_descriptor320.lib
opencv_ml320.lib
opencv_objdetect320.lib
opencv_optflow320.lib
opencv_phase_unwrapping320.lib
opencv_photo320.lib
opencv_plot320.lib
opencv_reg320.lib
opencv_rgbd320.lib
opencv_saliency320.lib
opencv_shape320.lib
opencv_stereo320.lib
opencv_stitching320.lib
opencv_structured_light320.lib
opencv_superres320.lib
opencv_surface_matching320.lib
opencv_text320.lib
opencv_tracking320.lib
opencv_video320.lib
opencv_videoio320.lib
opencv_videostab320.lib
opencv_xfeatures2d320.lib
opencv_ximgproc320.lib
opencv_xobjdetect320.lib
opencv_xobjdetect320.lib
另外,这样还有一个小缺陷,并不影响使用,就是有时候会弹出:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
这样的警告,想要消除这个警告可以参考这个:
http://blog.csdn.net/qq_36226393/article/details/77725493
转头Linux—>ubutun:
与Windows相差不远
1.安装依赖
sudo apt-get installbuild-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
安装完成后,把contrib文件夹放入opencv目录下,并且创建build文件夹
2.安装cmake-gui
sudo apt-get install cmake-gui
3.安装配置opencv
安装好之后,进入opencv文件夹里的build文件夹,在这里打开终端,输入:
cmake-gui ..
就会打开gui界面。
确定路径没问题之后点击configure选择Unix Makefiles,其余默认,点击finish。需要下载一些文件,要等待一段时间。然后CMake即载入默认配置,如下图所示:
这里需要对两个地方进行修改:
(1)在CMAKE_BUILD_TYPE 值处输入RELEASE,其他保持不变(如果已经存在就不必修改)。
下方的CMAKE_INSTALL_PREFIX显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。但是建议就按照默认路径来,不要乱改!
(2)在OPENCV_EXTRA_MODULES_PATH处,选择输入目录(单击这一行后方空白处即可选中)
接着选择opencv_contrib文件夹中的modules文件夹,注意,不是只选中opencv_contrib文件夹就好了,需要点进去选中里面的modules文件夹! 如下图所示,我从左侧echo里进去选的,大家从自己安装位置选择就好。然后点Choose。
接着,这个过程需要一段时间,耐心等待一下。
完成之后,在build文件夹下重新打开一个终端,输入make,就会开始编译,过程较长,耐心等待。
看到100%就是成功啦!开森!!!!
4.配置环境变量
(1)安装成功后还需要设置opencv的环境变量。打开文件:
sudo gedit /etc/ld.so.conf.d/opencv.conf
(2)将以下内容添加到最后:
/usr/local/lib
(3)接下来配置库:
sudo ldconfig
(4)更改环境变量:
sudo gedit /etc/bash.bashrc
(5)在文件后添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,到这一步,opencv安装完成!
5.测试
下面用一个小程序测试一下到底有没有装好。
在projects目录下创建一个test文件夹,复制一张图片到文件夹,比如我复制的图片名为2.jpg。
然后在test文件夹里右键创建一个test.cpp文档,代码如下:
`#include <cv.h>
#include <highgui.h>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>`
using namespace cv;
int main( int argc, char** argv )
{
Mat image;
image = imread( argv[1], 1 );
if( argc != 2 || !image.data )
{
printf( “No image data \n” );
return -1;
}
namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
imshow( "Display Image", image );
waitKey(0);
return 0;
}
再在test目录下创建一个CMakeLists.txt 文件,内容如下,保存
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${
OpenCV_LIBS} )
在test目录下右键打开一个终端,依次输入:
cmake .
make
注意cmake之后先打个空格再打一个点。
看到100%表示成功了,系统会自动在test文件夹下生成makefile等文件:
./test 2.jpg
注意test后面有个空格
叽叽叽,来填坑辣
最最最重要的一点是:解决模拟计算机X64与目标计算机X86冲突,或者 ~.lib找不到的问题
实际上就是Cmake的版本不对
windows上下载prevision的版本
实际上就是Cmake的版本不对
windows上下载prevision的版本
实际上就是Cmake的版本不对
windows上下载prevision的版本
下载老版本:再选择VS 2013 win64就全程无错!!!