| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> OpenCV学习笔记(2)_CMake+Visual Studio 2013 源码编译CPU版本的OpenCV -> 正文阅读 |
|
[人工智能]OpenCV学习笔记(2)_CMake+Visual Studio 2013 源码编译CPU版本的OpenCV |
OpenCV学习笔记(2)CMake+Visual Studio 2013 源码编译CPU版本的OpenCV文章目录1. 系统配置及所用工具系统配置不高,原因很简单:小白一直比较穷. 但是通常来说,算法开发也并不需要很高的系统配置(就此安慰一下自己吧,等小白赚了钱再换好的电脑)
没有GPU,意味着编译出的并不是GPU版本的OpenCV,建议如果是有这方面需求的读者,可以去看一下CSDN博主“一朵小冯花”的博文系列“OpenCV编译合集”. 2. 过程概述及坑点2.1 下载安装各项工具Visual Studio 2013的下载安装就不多说了,毕竟这是一个现在看来已经非常古老的版本,VS2022都快要出来了. 也正因为如此,如果碰到了使用Visual Studio 2013这样的”稳定版本“进行开发工作时,OpenCV的官网已经不再提供支持如此老版本开发工具的直接安装版下载了,需要自己做编译. CMake下载:官方下载地址 下载时,注意安装版和源码的差别,我们是Windows下使用的CMake,下载的是.msi文件. 安装CMake非常简单,各种勾选Next就可,唯一需要注意的是,需要在Install Options这一步时,勾选**“Add Cmake to the system PATH for all users”**,目的是把CMake添加进环境变量中. 安装成功后需要重启系统,打开cmd后输入cmake,可以查看到如下图的信息,即为配置成功. 2.2 下载OpenCV对应源码找到相应版本,点击“Sources”下载的正是可编译的源码. 本小白这次下载的是3.4.16版本. 在opencv的Github地址下,可以通过分支查看,在标签列表内查看目标版本. 注意查看Download ZIP,下载OpenCV对应的源码. 解压之后,可以把压缩文件解压到名为source的文件夹下. 打开CMake,配置编译器: 为了编译,把文件按以下方式组织:
打开CMake的GUI,将以上的source路径和build路径作为源程序文件和编译位置. 2.3 重点解决ffmpeg/ippicv下载失败问题以上设置之后直接点击“Configure”之后,可能会遇上很多的错误(红色). 其中有一种错误是非常常见的: 这个错误通常不会是一个,可能有四个,分别是以下四个文件出现错误:
出现问题的原因通常是因为网络,CMake无法下载这些文档. 解决方案其实蕴藏在CMake的错误提示里:
于是我们可以找到这个CMakeDownloadingLog.txt: 以opencv_ffmpeg.dll为例,需要去红色框标记的网址处下载这个文件 https://raw.githubusercontent.com/opencv/opencv_3rdparty/0bf6c0753d435d2c82c03c48db0c6e18ac79976c/ffmpeg/opencv_ffmpeg.dll 然后要去source下的.cache/ffmpeg文件夹下,把opencv_ffmpeg.dll的文件名修改成带有MD5校验码的文件名.这个校验码在以上文本文件中也能看到,注意不是网址中的那一串码,而是do_copy那一句中的 其他三个文件也是一样处理,但这里需要注意,对于ffmpeg_version.cmake,不要复制打开网页后的文本,而应该直接右键另存为,防止格式出现错误. 把以上文件准备好之后如果Configure仍然报错,解决方法如下:
2.4 编译勾选注意因为是编译CPU版本,没有GPU,也不打算编译跟python或java有关的内容,所以要注意,以下几个被默认选上的选项要去掉勾选:
为了后面使用方便,需要勾选上以下选项
2.5 两次Configure一次Generate这一步正是如同很多博客里写的那样(此处也缅怀前不久殒命的浅墨大神),在CMake中两次点击Configure,一次点击Generate. 完成后,点击Open Project,打开OpenCV.sln,终于转到VS2013来编译. 2.6 批生成打开OpenCV.sln解决方案文件,把项目INSTALL设置成启动项目,防止编译运行结束后报错. ”生成“–>”批生成“, 在INSTALL的Debug和Release后均勾选生成,然后点击生成按钮,开始编译. 2.7 install文件夹下找可用的安装版本经过一段非常漫长的等待(如果没有其他bug的问题),就可以看到绝大多数的项目都编译通过了,但可能会有opencv_test_core的版本编译失败. 这个没关系,因为这个项目中有与GPU相关的代码,缺少相关依赖. /build/install下的内容就是可以供安装的编译完版本,主要包括include下的头文件,和x64下的库文件. 使用这些内容和安装版的配置方式一样. 2.8 源码可供调试如果想调试源码,可以看到在/build/bin/Debug或/build/bin/Release下有编译相关的.pdb文件,有了这个文件,我们就可以对源码进行调试. 3. 感悟,可以不看这篇博客补的是一年前的坑,一年前的那篇博客,也是本系列的第一篇里写过,“要尝试编译源码的方式来安装OpenCV”. 结果后面一整年都没有写OpenCV相关的内容. 本小白在经历了这个反复踩坑编译OpenCV的过程之后,其实也非常建议众多跟本小白一样的小白们,尝试一下通过CMake的方式编译OpenCV. 你可以借此机会一窥CMake、VS等相关的基础知识,能够学习如何编译一个第三方开源代码项目. 毕竟在GitHub这样的开源社区里,有大量的源码,别人分享出来的方式,往往就是带了一个CMakeList.txt. 对有志于学习编程的人来说,调试、阅读别人的源码是非常重要的学习方法,也是一项基本技能. 本小白就是长期逃避这样一个学习过程,从而对各种知识浅尝辄止,不能深入到基础的内容, 以致于职业生涯遇到了极大的瓶颈. 这才痛定思痛,从去年开始把自己归零,回头学习各种基础,发现到处都是技能盲点. 希望后来者不要再走本小白走过的弯路. 这里也再挖上一个坑,后续本小白会着力系统性地学习CMake的相关使用, 也会再出一个系列,名字暂定为“CMake使用学习——从小白到入门”. 2021年年初给自己立的flag,是要写四十篇技术博客的,但是年终回望,只有区区二十几篇,中间还有几篇是临时的记录性的笔记. 笔记的内容也多是集中在工具的推荐和使用上. 虽然自己觉得工具这块也很重要,毕竟程序员是一个工程性的岗位,需要各种辅助工具提高工作的效率和效能,但是这些东西仍然浮于表面,可以推荐,但不应该占据了大头. 2022年,本小白希望自己能够做到坚持创作,并且慢慢把重心沉淀到一些具有实际内涵,能够夯实基础的技术内容. 小白写博客的初心,就是为了从一个小白的身份出发,记录自己的学习历程、分享自己学习过程中的所得所感,能够做一个踏坑者. 道路依然艰辛遥远,水平仍然徘徊不前,但脚踩在学习的羊肠小道上,却仍然能够驱散哪怕一米方圆的谜雾,看到不远处的微光,为后来人点亮道旁的明灯. |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 23:41:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |