0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文读懂OpenCV源码及扩展模块的编译与环境配置

新机器视觉 来源:3D视觉工坊 作者:3D视觉工坊 2021-06-25 11:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

版本:VS2017、CMake3.12.3、OpenCV3.4.7

安装OpenCV时的环境配置以及扩展模块的编译对于多数新手来说都是令人头疼的问题,希望通过这篇文章可以帮助新手们一次搞定OpenCV的安装与扩展模块编译问题。

第一步:安装软件

1、安装VS(这里用的版本是VS2017),在微软官网可直接下载。

2、安装OpenCV,建议将扩展模块部分也一起下载。

①需要登陆opencv官方github网站戳这里,打开页面点击上方releases

②找到要安装的opencv版本,先点击Assets,再选择Source code (Zip)下载压缩包。

③将压缩包(opencv-3.4.7)解压到指定路径下得到opencv源码source

④下载扩展模块,需要先找到opencv_contrib戳这里,同样点击releases

⑤进入后选择与自己的opencv源码版本一致的opencv扩展模块点击zip下载压缩包

⑥将压缩包(opencv_contrib-3.4.7)解压到指定路径下,建议和opencv解压缩后的文件放在同一个文件夹中。

点开文件夹的样子如下,其中modules中存放着opencv中的扩展模块。

到此为止,我们的opencv及其扩展模块就安装完成了。

3、安装编译工具CMake

①进CMake的官方网址下载即可。戳这里

要注意的是,选择的CMake版本要与opencv的版本兼容,这里选择的CMake版本为3.12.3,选择msi文件下载。

②第一次进入会出现下面的弹窗,按如下勾选:

a359be54-d4f1-11eb-9e57-12bb97331649.png

其余出现的接受协议,存储路径等弹窗,就一路确定下来就好,这样就完成了CMake的安装。

第二步:编译OpenCV中的扩展模块

使用编译工具CMake,其界面如下所示:

a367a60e-d4f1-11eb-9e57-12bb97331649.png

1、首先在CMake中添加源码地址与结果保存地址,结果保存地址可以自己创建,建议和OpenCV中的source建立在一个文件夹下,这里为build文件夹。

2、点击configure,首次点击会要求选择VS版本(这里采用的是VS2017),按如下进行勾选:

a3bc73f0-d4f1-11eb-9e57-12bb97331649.png

3、configure结束后如果没有出现报错,则点击generate,如果出现报错,需要先排除报错,可以先多试几次configure,直到不报错。

4、添加扩展模块路径

在上方勾选框中找到如下所示的模块路径,将扩展模块中的modules路径添加进去,将其上方的OPENCV_ENABLE_NONFREE勾选上,将world选项也勾选上,其余的可以先不动(按照默认)。

a3de88dc-d4f1-11eb-9e57-12bb97331649.png

a4320c1e-d4f1-11eb-9e57-12bb97331649.png

5、然后重新进行configure,直到上方勾选框全部变白,然后点击generate,配置完成。

6、这时在build中找到OpenCV.sln打开

7、在资源管理器中找到INSTALL,右键点击生成(如果不是第一次就点击重新生成)

8、生成结束后,在build的文件夹下将会有一个新出现的install文件夹,这个文件夹就是最终得到的包含了扩展模块的opencv框架。

第三步:环境配置

配置OpenCV与VS2017

1、配置环境变量

①找到CMake编译后的uildinstallx64vc15in文件夹,复制其路径。

②找到本机的高级系统设置(在文件夹中右击此电脑选择属性可以找到),点击进入。

③进入后点击环境变量然后找到Path系统变量,双击进入。

④点击新建,将刚刚复制的路径粘贴进去,然后一路点击确定。

2、配置包含目录

① 打开VS2017,切换窗口为属性管理器

②在属性管理器中按如下操作进入属性页

③进入属性页后双击包含目录,点击右侧出现的角标进入编辑

④进入后添加路径分别为编译生成的install下的几个文件夹,分别为installinclude、installincludeopencv、installincludeopencv2,全部添加完成后点击确定。

3、配置库目录

①进入属性页后双击库目录,点击右侧出现的角标进入编辑

②进入后添加路径为编译后install下的文件夹installx64vc15lib,添加完成后点击确定。

4、配置链接文件

打开属性页中链接器中的输入,将附加依赖项改为和自己的opencv版本匹配即可,完成后点击属性页下方的确定。例如:我用的opencv版本是3.4.7,则附加依赖项为opencv_world347d.lib,具体可在installx64vc15lib中查看

第四步:测试扩展模块

这里以扩展模块中常用的xfeature2D模块为例,调用包含其中的SIFT实现特征检测。

—版权声明—

来源:3D视觉工坊

仅用于学术分享,版权属于原作者。

若有侵权,请联系删除或修改!

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 管理器
    +关注

    关注

    0

    文章

    265

    浏览量

    19554
  • Sift
    +关注

    关注

    1

    文章

    38

    浏览量

    15617
  • OpenCV
    +关注

    关注

    33

    文章

    652

    浏览量

    45076

原文标题:一次搞定OpenCV源码及扩展模块的编译与环境配置

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微(EASY EAI)RV1126B 开发(编译)方式说明

    1.交叉编译(推荐)1.1优缺点优点:采用x86架构的CPU进行编译编译速度快。源码编辑方便,开发环境支持各种如vsCode、qtCrea
    的头像 发表于 03-28 16:08 5198次阅读
    瑞芯微(EASY EAI)RV1126B 开发(<b class='flag-5'>编译</b>)方式说明

    rk3576 android15平台camera编译配置都做了什么?

    该文件是瑞芯微(Rockchip)Android平台下相机子系统的核心编译配置Makefile,属于Android Build System的关键组成部分,作用是根据编译环境的动态条件
    的头像 发表于 03-06 17:15 3150次阅读
    rk3576 android15平台camera<b class='flag-5'>编译</b><b class='flag-5'>配置</b>都做了什么?

    【EASY EAI Nano-TB(RV1126B)开发板试用】03. 算法环境搭建

    遇到了opencv2件缺失的问题,大概率是你的虚拟机中允许的编译环境没有和开发板进行绑定,需要重新执行 测试结果如下
    发表于 12-23 21:32

    ESP32 编译过程中 bootloader 配置阶段的 CMake 缓存冲突错误,记录

    的 bootloader 源码 但 CMake 缓存中记录的却是 D:/esp-idf-v5.4.3 路径的源码 路径不匹配导致配置阶段失败,进而中断整个编译流程 解决方案 下面是
    发表于 12-23 07:07

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展
    发表于 12-13 12:37

    详解SystemC仿真库的编译

    AMD Vivado 设计套件以文件和库的形式提供仿真模型。仿真库包含器件和 IP 的行为和时序模型。编译后的库可供多个设计项目使用。用户必须在设计仿真之前通过名为 compile_simlib 的实用程序编译这些文件,以便为目标仿真器
    的头像 发表于 12-12 15:08 5036次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>详解SystemC仿真库的<b class='flag-5'>编译</b>

    带你读懂“脉冲输入输出模块

    “脉冲输入输出模块”,正是这位默默无闻的“信号翻译官”。 、什么是脉冲输入输出模块? 简单来说, 脉冲输入/输出模块(Pulse I/O Module)是
    的头像 发表于 11-24 17:10 1208次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>带你<b class='flag-5'>读懂</b>“脉冲输入输出<b class='flag-5'>模块</b>”

    开发环境键部署 | 如何搭建Docker环境编译ARM程序?

    点:环境搭建为何如此关键?嵌入式Linux开发,环境是地基。传统方式下,开发者往往需要:四处搜寻匹配的工具链版本手动配置复杂的编译参数多次反复适配
    的头像 发表于 08-15 11:06 1156次阅读
    开发<b class='flag-5'>环境</b><b class='flag-5'>一</b>键部署 | 如何搭建Docker<b class='flag-5'>环境</b><b class='flag-5'>编译</b>ARM程序?

    如何板端编译OpenCV并搭建应用--基于瑞芯微米尔RK3576开发板

    本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微 RK3576开发板)的板端编译OpenCV环境搭建方案的开发测试。摘自优秀创作者-短笛君 RK3576具有如下配置
    发表于 08-08 17:14

    如何在RK3576开发板上板端编译OpenCV并搭建应用

    本文将介绍基于米尔电子MYD-LR3576开发板(米尔基于瑞芯微RK3576开发板)的板端编译OpenCV环境搭建方案的开发测试。摘自优秀创作者-短笛君RK3576具有如下配置:4
    的头像 发表于 08-08 08:04 3669次阅读
    如何在RK3576开发板上板端<b class='flag-5'>编译</b><b class='flag-5'>OpenCV</b>并搭建应用

    读懂模块:通信网络的 “光纽带”

    模块作为交换机、路由器等设备间的连接 “桥梁”,承担着电信号与光信号相互转换的重任。从连接器类型到外形尺寸,光模块展现出丰富的多样性。在深入探索其细节之前,掌握光模块的基础知识,能帮助我们更好地分辨不同光
    的头像 发表于 07-25 10:09 4017次阅读

    【VisionFive 2单板计算机试用体验】人脸识别1——交叉编译环境搭建

    、Spike模拟器及PK代理内核的编译和安装,包括依赖包管理和配置过程,适合像我样的RISC-V开发者入门参考,我是基于ARM经验做的,可能有的地方也会存在跟系统版本、编译工具版本强
    发表于 07-20 23:59

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试

    选择:DuoS 架构选择:RISCV64 之后自动部署环境配置等流程 同个终端,加载编译环境
    发表于 07-11 13:48

    RTsmart源码编译错误,提醒我缺少文件导致make失败,为什么?

    最近重新拉取Gitee的源码,根据官网文档来操作的 选择的硬件配置是k230_rtos_01studio_defconfig 直到执行make,都是和以前样可以实现的,但是在
    发表于 06-20 06:25

    【经验分享】在Omni3576上编译Redis-8.0.2源码,并安装及性能测试

    本文首先介绍Redis是什么,然后介绍如何在Omni3576上编译Redis-8.0.2源码,以及从源码编译、安装Redis,最后介绍如何在Omni3576上运行Redis性能测试,并
    的头像 发表于 06-05 08:05 1083次阅读
    【经验分享】在Omni3576上<b class='flag-5'>编译</b>Redis-8.0.2<b class='flag-5'>源码</b>,并安装及性能测试