opencv编译及配置
admin
2024-04-22 16:37:27
0

一、编译opencv源码

1. 将OpenCV2.2.0的压缩包解压到路径D:\OpenCV\opencv (以下所有路径都可自己选择 只要对应起来即可)

2. 安装Cmake,可以到官网http://www.cmake.org去下载并按默认设置安装安装即可。

    此处注意一般vs采用的是win32编译器进行debug和release(即使你是安装的x64),所以下载cmake的时候应该下载32位版本,这样cmake编译出来的是32位的工程文件,x64的cmake编译的是64位工程文件。

3.打开Cmake,在第一行“Where is the source code”后面的那个“Browse Source...”按钮,选择OpenCV的安装路径。我的Opencv2.0安装路径为D:/OpenCV/opencv/,这里需要选择source文件夹,因此输入D:/OpenCV/opencv/sources,同理点击第二行的“Browse Build...”按钮并选择生成的源码路径。这里放置在D:/OpenCV/opencvSln文件夹中,设定完成后点击左下方的configure。

4.在弹出的对话框中选择第一项,并在下拉框中选择编译平台,由于本人电脑上安装的是VS2013,因此,就选择Visual Studio 12 2013,点击Finish。 此处注意你选择使用的编译器应该和你平时使用的编译器相同。

5.需要一段时间,完成时出现以下界面:

6.再次点击Configure按钮,完成时红色部分消失,为以下状态:

7.点击“Generate”按钮,等到最下方信息显示框显示点击“Generate done”时所有步骤完成!至此,就生成了包含OpenCV函数源代码的Visual Studio工程文件;进入工程文件所在的路径D:/OpenCV/opencvSln,点击open project可以直接进入vs查看生成的解决方案:

此时,你就可以通过vs查看opencv的源码。

8.对源码进行编译:

(1)点击运行,分别生成Debug版本和Release版本。可以看到路径“D:\OpenCV\opencvSln”下多了bin和lib文件夹。这两个文件夹中都包含两个子文件夹Debug和Release,存放的Debug版本和Release版本的静态库与动态库。

(2)在解决方案视图(类视图)中选择“INSTALL”,右键生成。此时在路径“D:\OpenCV\opencvSln\install\include\opencv2”下包含了很多子文件夹,每个子文件夹就是OpenCV2.2.0的各个功能模块的头文件。这一步也要分别生成Debug版本和Release版本。

二、opencv库的配置与链接

1.将“D:\OpenCV\opencvSln\bin”加入到系统环境变量中。

在控制面板——系统和安全——系统——高级系统设置——环境变量里的“PATH”下添加“D:\OpenCV\opencvSln\bin”

2. 在VS2013项目中配置OpenCV。此步有多种方法,鉴于debug和release链接的lib文件不同,此处我采用的是将opencv链接的debug和release分别配置为一个属性表,在以后需要用opencv库的项目中都添加这个配置好的属性表即可。其他方法详见OpenCV在Visual Studio中的属性表配置方法。

(1)首先新建一个vs控制台项目,在属性管理器中选择Debug|Win32,右键选择添加新项目属性表

(2)创建新属性表后如下图,选择你创建的属性表,右键“属性”。

(3)选择VC++目录,点击包含目录,点击右侧下拉按钮编辑,将上一步install编译生成的头文件目录include添加进包含目录中。我这里是如下三个目录:

D:\OpenCV\opencvSln\install\include

D:\OpenCV\opencvSln\install\include\opencv

D:\OpenCV\opencvSln\install\include\opencv2

注意:如果直接使用opencv编译(build)生成的头文件,目录有所不同,但都是在include文件夹下面,即:

D:\OpenCV\opencv\build\include

D:\OpenCV\opencv\build\include\opencv

D:\OpenCV\opencv\build\include\opencv2

(4)将编译好的lib目录添加进库目录,此处为debug的属性页,将编译生成debug版本的lib文件目录添加到库目录

D:\OpenCV\opencvSln\lib\Debug

(5)链接库的配置。

同样在属性页中,选择 属性->链接器->输入->附加依赖项:

编辑附加依赖项,将lib文件夹中的lib文件名全部添加到附加依赖项中。

我使用的2.4.13版,此处先配置debug版本的文件,因此lib文件为:(数字为版本号,d表示为debug版本)

opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_haartraining_engined.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_ml2413d.lib
opencv_nonfree2413d.lib
opencv_objdetect2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_videostab2413d.lib

(6)到此为止,debug的文件库目录和链接就已经配置完成,如果步骤没有问题,此时vs就能够用debug运行调用opencv库了;若要使用release采用同样的方法对release版本进行配置即可。

目录:

附加依赖项:

opencv_calib3d2413.lib
opencv_contrib2413.lib
opencv_core2413.lib
opencv_features2d2413.lib
opencv_flann2413.lib
opencv_gpu2413.lib
opencv_haartraining_engine.lib
opencv_highgui2413.lib
opencv_imgproc2413.lib
opencv_legacy2413.lib
opencv_ml2413.lib
opencv_nonfree2413.lib
opencv_objdetect2413.lib
opencv_ocl2413.lib
opencv_photo2413.lib
opencv_stitching2413.lib
opencv_superres2413.lib
opencv_ts2413.lib
opencv_video2413.lib
opencv_videostab2413.lib

三、测试程序:

使用一个小的测试程序进行测试opencv库的配置

nclude
#include 
#include 
#include using namespace cv;int main()
{// 读入一张图片(游戏原画)Mat img = imread("building.jpg");// 创建一个名为 "游戏原画"窗口namedWindow("游戏原画");// 在窗口中显示游戏原画imshow("游戏原画", img);// 等待6000 ms后窗口自动关闭waitKey(6000);return 0;
}

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...