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模块,因此您应使用下面列出的其他选项之一来获得它。

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文件夹
安装完成后,把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时就会安装到这个目录,这里可以根据个人需求更改。但是建议就按照默认路径来,不要乱改!
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210519164324314.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDM0ODcxOQ==,size_16,color_FFFFFF,t_70
(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就全程无错!!!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44348719/article/details/116977832
今日推荐