学习OpenCV的学习笔记系列(二)源码编译及自带样例工程

如何编译运行opencv的sample 如何编译运行opencv的sample 前言:之前在树莓派上配置了opencv,但还不知道怎么使用,知道opencv有很多的sample,所以现在记录一下如何使用opencv的sample。 设备:华硕FX50V 环境:已经配置好opencv的ubuntu 14.04(如果还没配置opencv可以参照前面的博客,有讲怎么配置,看树莓派那篇也行) 进入到samples文件夹,这里有各种语言的 阅读详情

本文转载自:http://www.07net01.com/2014/09/66490.html

下载及安装CMake3.0.1

     

要自己编译OpenCV2.4.9的源码,首先,必须下载编译工具,使用的比较多的编译工具是CMake。

下面摘录一段关于CMake的介绍:

      

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C 特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如
Unix 的 Makefile 或 Windows Visual C 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

CMake 可以编译源代码、制作程式库、产生适配器(wrapper)、还可以用任意的顺序建构执行档。CMake 支援 in-place 建构(二进档和源代码在同一个目录树中)和 out-of-place 建构(二进档在别的目录里),因此可以很容易从同一个源代码目录树中建构出多个二进档。CMake 也支持静态与动态程式库的建构。
“CMake”这个名字是“Cross Platform Make”的缩写。虽然名字中含有“make”,但是CMake和Unix上常见的“make”系统是分开的,而且更为高阶。


通过以上介绍我们知道,我们可以用CMake这个工具将源码编译成VS2010的工程文件,使得我们可以在VS下以不同项目组的形式构建多个样例或者教程工程。


我们可以在CMake的官网:
 http://www.cmake.org/cmake/resources/software.html 上找到最新版本的CMake安装文件。


选择文件“CMake-3.0.1-win32-x86.exe”下载,一共10.78MB,很快可以下完。


下载完成后,双击安装程序,即可开始CMake的安装。


安装很简单,基本上就是“下一步”,直至最后一步“完成”。















安装完成后,可以在“开始”菜单中找到已经安装好的CMake3.0.1程序的快捷方式"CMake (cmake-gui)"


安装好了以后,下面开始进行OpenCV源码的编译。

     

     

OpenCV2.4.9源码编译


这里假设我们已经将OpenCV2.4.9的源码下载并且安装好了。(如果这一步不知道怎么做,请参看本人另一个教程《学习OpenCV的学习笔记系列(一)环境配置》)

在“开始”菜单中点击“CMake (cmake-gui)”,打开CMake程序,此时将弹出编译设置界面。如下图所示


在"Where is the source code"选项的文本框中输入OpenCV源码所在的目录路径,可以点击"Browse Source…"选择文件夹,请根据源码安装的实际位置选择路径,此处选择的是"H:/opencv/sources"。


在"Where to build the binaries"选项的文本框中输入需要构建样例工程及源码的文件目录路径,此处选择的是与源码同一文件夹下的"H:/OpenCV/Solution"。

输入完源码路径及生成路径之后,点击编译设置界面左下角的"Configure"按钮

如果是第一次配置,那么将会弹出一个选择生成工程目标环境的界面,此处选择“Visual Studio 10 2010”选项,勾选"Use default native compilers",然后点击"Finish"按钮。


如果生成目标目录路径不存在,那么会有一个提示新建目录的对话框,如下图所示,直接点"Yes"即可。


第一次配置会出现很多红色的选项,别管它,再点击一次"Configure"按钮。


这一次,红色选项没有了,说明没有问题了,配置完成。


点击"Generate"按钮


在看到最下方有"Generating done"字样后,说明源码工程编译完毕。

     

     

OpenCV2.4.9源码工程测试

      

打开上一步设置的生成目录路径下的文件夹,可见有一个"Solution"文件夹,这个是上一步设置中自动生成的,双击该文件夹。


在"H:/opencv/Solution"路径下,我们可以看到有一个已经编译生成好了的VS2010工程文件"OpenCV.sln",双击该文件,既可以在VS2010中打开该工程文件。



在打开的"OpenCV"工程中,我们可以看到有68个项目。


右键点击OpenCV解决方案,选择生成解决方案。


编译用时较长,我的PC配置算是比较好的,但是编译也一共耗时约2分钟左右,生成62个工程,失败0个,说明全部编译通过。恭喜自己一下!


接下来,就可以逐个工程去查看,编译了。关于这些样例工程及源码的解释,后续将补充。。。

     

     

OpenCV2.4.9自带样例源码编译及测试

     

以上介绍的是OpenCV的源码编译及工程,下面介绍怎么编译OpenCV自带的样例源码及工程。

熟门熟路地打开CMake3.0.1,将源码路径改为:"H:/opencv/sources/samples"(具体路径随安装位置而不同,在opencv的源码安装目录下可以找到“sample”文件夹)。







在一通配置(Configure)及生成(Generate)后(配置项同上,此处不赘述!),在目标目录下,可以找到已经生成好了的OpenCV的样例工程文件:“samples.sln”


点击打开"samples.sln",看到解决方案资源管理器中显示一共有172个项目(样例真多,好好看哈!)


右键点击解决方案,选择“生成解决方案”


大概一分钟左右(不同机器配置,编译时间有差别),编译完成,工程生成171个工程,失败0个,一次编译通过,点个赞!


整体编译无误后,随手打开一个样例工程,本文选择“(EXAMPLE) lkdemo”工程。此工程源码使用改进的Lucas-Kanade光流算法,用于检测视频运动目标。用鼠标点击目标点,可视频跟踪。


点击运行,发现一个命令行界面一闪而过,之后就退出了,这是为什么呢?

通过单步运行调试发现,在“lkdemo.cpp”文件的56行的"if( !cap.isOpened() );"判断语句中,播放器没有打开,直接在控制台显示一行“Could
not initialize capturing…
”就退出了。分析其原因,是因为“cap.open("Megamind.avi");”这个语句中的视频文件“Megamind.avi”不在程序目录下。知道原因,就好解决了!

在“H:\opencv\sources\samples\cpp”目录下(源码文件目录)拷贝“Megamind.avi”文件至“H:\opencv\sampleSolution\cpp\Debug”目录下(此乃程序“cpp-example-lkdemo.exe”所在目录)。换句话说,就是要确保在程序运行的目录下有“Megamind.avi”文件即可。




在做完以上工作后,再次点击运行,就成功运行了,播放的是一个动画片,在画面的一处点击左键后,会有一个绿色的标记点,该标记点的位置会随着周围物体的运动而改变,这应该就是所谓的视频跟踪了。截图如下:



OK,这其中的原理及工作流程我就不介绍了,自己看源码,其他样例工程的源码可以一个个去看,然后编译运行,相信将这些样例都熟悉理解摸透后,OpenCV对你将不再陌生。欢迎你步入OpenCV的殿堂,开始你的学习阶段吧!

OpenCV3.0.1源码编译及自带样例工程代码编译 OpenCV3.0.1源码编译及自带样例工程代码编译 详细步骤参见博文:OpenCV3.0.1源码编译及自带样例工程代码编译 =========下面是个人在实际编译过程中遇到问题并解决的经历=========== 按照推荐的博文,在opencv 源码编译好之后,在编译自带样例工程代码时,如果Cmake里的地址设置不正确,可能会遇到问题: 解决方法: 注:图中红色方框这里是的地 阅读详情

相关推荐

树莓派3和4B安装OpenCV教程(编译源码,一次成功)提供安装好OpenCV的系统镜像

目录 【准备工作】 【正式安装】 一、安装OpenCV所需要的依赖工具和一些图像视频库。 二、编译OpenCV源码 【系统镜像补充】 【准备工作】 1.这里我用的是官方Raspbian-buster-full系统,首先要更换源为清华源,避免后面下载gtk2.0失败。 换源方法:https://blog.youkuaiyun.com/zqxdsy/article/details/10257423...

zqxdsy的博客 1万+

多平台编译OpenCV 4.6.0源码操作步骤

多平台编译OpenCV 4.6.0源码操作步骤

网络资源是无限的 5168

OpenHarmony南向设备开发:OpenCV应用样例开发

本文主要介绍 OpenHarmony 如何用 opencvlib 进行应用样例开发

初一十五的博客 1111

ubuntu环境中使用clion编译opencv samples

ubuntu环境中使用clion编译opencv samples

qxpxp的博客 596

自行编译OpenCV源码步骤

OpenCV自行编译

Tesseract_9527的博客 1917

opencv 源码的裁剪,调试opencv源码以及对源码的重编译

@[TOC](如何) opencv 源码的裁剪,调试opencv源码以及对源码的重编译 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 如何获取模块之间的依赖关系 1、安装windows版的cmake工具 2、利用cmake-gui 配置opencv源码的编译 图片: 参...

jishuqianjin的博客 1958

学习 opencv 自带示例 stereo_calib(立体相机标定)

目录学习 opencv 自带示例 stereo_calib(立体相机标定)准备调试示例代码目标工程确定输入参数类型调试模式(debug)输入参数F5 调试程序执行完毕(输出项目)内外参数据说明学习(TODO)参考 学习 opencv 自带示例 stereo_calib(立体相机标定) 准备 首先,需要编译 opencv 自带示例,可以参考之前的博客记录: cmake+windows 编译 opencv 自带示例. 调试示例代码 目标工程 确定输入参数类型 /// 参数: /// @ w:棋盘格(圆形)标定

weixin_37834269的博客 5204

OpenCV3.4 源码编译

由于一个毕业设计是关于人脸识别的,会接触到OpenCV,所以需要OpenCV的SDk。闲话少提,下面进入正题: 首先介绍一下我的安装环境: 本人这台机器是core I5 7200U,Nvidia 930MX,标准的笔记本配置,系统是Windows 10 64位,CMake3.7.2,Visual Studio 2015(MSVC1900)。因为个人原因需要用到Python和CUDA,本博文

hzgloveyd的博客 1万+

学习OpenCV的学习笔记系列(二)源码编译及自带样例工程(转)

下载及安装CMake3.0.1       要自己编译OpenCV2.4.9的源码,首先,必须下载编译工具,使用的比较多的编译工具是CMake。 下面摘录一段关于CMake的介绍:        CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C

shirley的专栏 892

【OpenCV】在MacOS上源码编译OpenCV

在做视觉任务时,我们经常会用到开源视觉库OpenCV,OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,它具有C++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS。 最近在项目中,我遇到了在MacOS上使用OpenCV需求,目前OpenCV官网上并没有提供OpenCV现成的安装包,因此在此处我们需要自己进行编译.

grape_yan的博客 3325

华为交换机密码策略配置避坑指南:明文/密文、长度、复杂度,一个命令就出错

本文详细解析华为交换机密码策略配置的关键要点,包括密码长度、复杂度及等保合规要求。通过实战案例揭示常见配置误区,如明文/密文密码格式差异、复杂度检查联动机制等,帮助网络工程师避免安全漏洞。特别针对等保二级和三级要求,提供可直接落地的安全加固方案。

weixin_30879169的博客 367

如何修改调试OpenCV源码

有时候,直接调用OpenCV的接口并不能满足我们的需求,需要我们对源码及其算法进行修改。这里就介绍一下如何修改OpenCV的源码。首先,要用cmake编译一下OpenCV;然后,就是修改源码了;接着,配置新生成的dll和lib;最后,测试。 一、cmake编译OpenCV        编译的具体步骤:主要参考浅墨_毛星云的文章,此人的博客写的很好,很详细,很多值得学习。我并做了一些修

feifei 1万+

如何在Proteus中模拟Arduino

进一步的Proteus可用于设计任何与Arduino相关的项目,它将在进入硬件级别之前提供更好的理解。由于其广泛的库集合,它是Arduino社区中最受欢迎的工具之一,不仅如此,Proteus还可以为Arduino项目设计定制的PCB。就像上一步一样,现在搜索Arduino UNO板,选择Arduino板并单击“确定”以添加到项目中,或者双击以在Proteus项目中添加Arduino。一旦在Proteus中成功创建了一个新项目,现在我们将设计一个用于Proteus中闪烁LED的Arduino电路。

acktomas的博客 1万+

利用Cmake编译OpenCV源码

文章目录一、下载安装1.下载2.安装二、 一、下载安装 1.下载 下载地址:https://cmake.org/download/ 打开后如图,点击红框内文件下载 .msi 文件是`window.installer`程序,双击就会是安装界面。 .tar.gz文件是linux 与MaxOs下常见的一种压缩文件。 2.安装 双击安装 添加环境变量 安装路径,修改为自己的 安装成功后进行,在...

guanglingjun 6452

用Cloudflare Worker搭建你的私人Gemini Pro API

文章介绍如何通过开源项目gemini-cli-openai将谷歌Gemini模型转换为兼容OpenAI API的服务,解决Gemini CLI的三大使用障碍:网络访问、命令行操作和生态整合问题。部署流程主要包括获取Google OAuth2凭证、配置Cloudflare Worker项目并设置KV存储,最终可在CherryStudio等图形客户端中调用Gemini。该方法利用Cloudflare全球网络实现加速访问,同时保持认证信息安全可控。

Hsiao的二进制生活 1681

信贷风控实战指南:Vintage分析表从数据建模到风险洞察

本文是一份信贷风控实战指南,详细阐述了Vintage分析从数据建模到风险洞察的全流程。文章深入解析了Vintage分析作为信贷资产“体检报告”的核心价值,并提供了从借据表与还款计划表设计、账龄计算、逾期口径判定到风险暴露计算与最终可视化透视的完整SQL实现方案,旨在帮助风控从业者构建精准的风险监控体系。

nft7creator的博客 318

cmake + windows 编译 opencv 自带示例

目录cmake+windows 编译 opencv 自带示例准备编译步骤运行 `lkdemo`(改进的Lucas-Kanade光流算法)参考 cmake+windows 编译 opencv 自带示例 准备 我的 OpenCV 的源码在很久以前就已经编译好了(编译过程可参考链接1跟4),只是在最近需要参考一下源码中自带的示例(samples)的运行效果,于是就鼓捣了一下。 编译后的opencv 目录结构 +---opencv | +---build | | +---... | +---buildFile |

weixin_37834269的博客 1782

APS生产排程系统——ERP、MES、APS系统的关联和区别

APS生产排程系统——ERP、MES、APS系统的关联和区别

这里有一只小马吖 2万+

【OpenCV入门教程之七】 玩转OpenCV源代码:生成OpenCV工程解决方案与OpenCV源码编译

这篇文章中,我们一起探讨了如何通过已经安装的OpenCV,选择不同的编译器类型,生成高度还原的OpenCV开发时的解决方案工程文件,欣赏OpenCV新版本中总计 六十六多万行的精妙源代码。我们可以对其源代码进行再次编译,得到二进制文件,或者修改原版官方的OpenCV代码,并编译后为自己所用,为深入理解OpenCV的开源魅力迈出了坚实的一步。

【浅墨的游戏编程Blog】毛星云(浅墨)的专栏 12万+

【AUTOSAR-IpduM】-2.2-创建并配置一个接收RX的(Multiplexed-I-PDU)多路复用

案列背景: 在CFG中配置一个发送TX的(Multiplexed-I-PDU)多路复用Frame。 目录 1 在Arxml中创建一个发送的多路复用Frame 2 CFG导入带多路复用Frame的ARXML 2.1 CFG中提示的错误Error 2.2 如何解决CFG中提示的错误Error 3 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--&g..

「汽车电子助手」的博客 1569

基于卷积神经网络的遥感图像地物分类

AI:89-基于卷积神经网络的遥感图像地物分类 基于卷积神经网络的遥感图像地物分类是一个令人兴奋的领域,它在环境监测、城市规划、农业、国防等领域具有广泛的应用。深度学习技术为我们提供了更准确、高效的工具,有望在未来进一步提高分类性能。在本文中,我们探讨了卷积神经网络的工作原理、数据准备、模型构建、训练和评估过程,并提供了多个代码示例。此外,我们讨论了地物分类的应用和挑战,以及未来的发展趋势。

一键难忘的博客 2717

OpenCV+OpenCV-Contrib源码编译

OpenCV是一款免费开源的计算机视觉算法库,在实际使用的时候,需要移植到不同的平台。在这记录下源码编译的过程。提示:以下是本篇文章正文内容,下面案例可供参考记录下window10 下编译OpenCV+opencv_contrib 的过程,也给有需要的朋友一些经验。

excelNo1的博客 6579

新手友好!C#上位机调用YOLO实现设备异常检测(详细步骤,附踩坑指南)

C#上位机调用YOLO实现设备异常检测,核心是把“工控交互”和“AI检测”的优势结合起来,新手不用追求一步到位,先跑通基础流程,再逐步优化性能和功能。我当初也是从踩坑中过来的,只要把核心链路和细节摸透,其实门槛并没有想象中高。如果你们在实操中遇到了具体问题(比如相机取流卡顿、模型推理报错),可以在评论区留言,后续我也可以针对性拆解具体模块的完整代码。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 663

【opencv】【GPU】windows10下opencv4.8.0-cuda Python版本源码编译教程

【opencv】【GPU】windows10下opencv4.8.0-cuda Python版本源码编译教程

yangyu0515的博客 9280

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 一起学习CMake – 01
下一篇: 局部特征(1)----(转)
thystar
博客等级 码龄17年 407粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值