编译安装并单步调试OpenCV扩展模块

不断更新的OpenCV视觉库,包含了大量较新的计算机视觉方面的研究成果,很多新的算法都放在了OpenCV_contrib,即扩展模块。这些新算法使用了OpenCV的数据结构或其它算法来做支撑,很多并不能单独分离直接使用,这时候我们就需要编译OpenCV和扩展模块。

这篇博客总结了如何编译安装扩展模块,并且进行单步调试OpenCV源码的方法。

扩展模块下载:https://github.com/opencv/opencv_contrib

工具:Cmake+Visual Studio

1. 选择源码路径和build路径,如下图

为了方便管理,这里build路径最好给出明确的名字。

2. 点击Configure,填写扩展模块module路径

找到OPENCV分组下的OPENCV_EXTRA_MODULE_PATH,填写路径为扩展模块下modules文件夹,如下图:

扩展模块路径
这里有两点需要注意:

第一:修改安装路径,找到CMAKE_INSTALL_PREFIX是后续安装的路径,可以按自己喜欢修改。

第二:这时候最好去掉BUILD_EXAMPLES,BUILD_PERF_TEST,BUILD_TEST。对于后续使用opencv,完全没有影响,还可以减少编译项,加快后面编译的速度。

3. 设置路径,再次Configure

这一步很关键,确保扩展模块的安装正确前提是各种目录在这一步配置好。

这里的路径是指:你需要安装的模块的第三方库。比如Viz模块依赖VTK,SFM模块依赖ceres,这些依赖库是需要提前编译安装好的。在cmake路径中搜索对应依赖库的名字,找到对应的项。一般来说需要设置路径的有三种:

xx_DIR: 这里路径填写为能够找到依赖库的xxConfig.cmake文件,如果填写错误,cmake的错误输出也会提示无法找到xx对应cmake文件

xx_INCLUDE_DIR: 依赖库头文件所在目录

xx_LIBRARIES: 依赖库的lib文件,手选

如果填写的路径正确,那么点击Configure成功后,查看输出信息,如下图。To be built中会有对应的模块名字,这样就算路径配置成功了

注:configure这一步,cmake会下载一些文件,可能会因为网络导致文件下载失败(有条件挂上VPN比较好)。遇到这种情况,如果是某个模块部分文件下载失败,不会影响Configure和Generate,具体问题可以再具体解决,比如xfeature模块中文件下载失败,可以后续补上具体文件。

4. Generate

点击生成即可,Configure没问题,这一步也会没问题。

5. Visual Studio编译安装(Debug和Release都做一次)

找到之前制定的build文件夹,打开OpenCV.sln,右击解决方案->生成ALL_BUILD。接下来就是等待编译完成。

潜在问题:因为每个模块可能依赖于其它模块生成的lib,有可能前一模块还没完成,后一模块就在编译。这种情况时,查看输出,找到缺少的lib对应项目,单独生成一下,再开始ALL_BUILD就会没问题。(原因考虑是VS对于多项目的编译方式造成,不同项目都遇到了,但是没有深究,以上方法就解决了问题)

上述完成后,找到INSTALL项目,生成INSTALL,就可以安装在之前制定的文件夹中。

6. 使用时的配置

新建一个项目时,需要配置一下几项:

  1. 附加包含目录:项目属性->C/C+±>常规->附加包含目录,填写安装目录下的include路径。
  2. 附加库目录:项目属性->链接器->常规->附加包含目录,填写安装目录下的lib路径。
  3. 可执行文件目录:项目属性->VC++目录->可执行文件目录,填写安装目录下bin。
*7. 单步调试源码

如果想在使用时,使用单步调试加入相应模块的源码,则需要再添加一个目录:

可执行文件目录:项目属性->VC++目录->可执行文件目录,填写build文件夹下…\bin\Debug路径。注意这里和第六步中不同,因为这个文件夹下含有pbd文件,可以让我们进行单步调试,更好地帮助我们学习源代码的执行过程与算法原理

同时Release文件夹下也有pbd文件,一般来说Release模式下不能调试,这里留个问题,等我找到答案,再来解释。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重新编译OpenCV并选择安装dnn模块的步骤如下: 1. 下载OpenCV源代码:从OpenCV官方网站(https://opencv.org/)下载OpenCV源代码。 2. 安装依赖项:安装OpenCV编译所需的依赖项。可以使用以下命令安装Ubuntu系统所需的依赖项: ``` sudo apt-get update sudo apt-get install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \ libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \ libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev ``` 3. 创建编译目录:在OpenCV源代码目录外创建一个目录,用于编译OpenCV。 ``` mkdir build cd build ``` 4. 配置OpenCV编译:使用CMake配置OpenCV编译。以下是一个示例CMake配置命令: ``` cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON \ -D ENABLE_NEON=ON \ -D WITH_LIBV4L=ON \ -D WITH_OPENGL=ON \ -D ENABLE_FAST_MATH=ON \ -D WITH_CUBLAS=ON \ -D WITH_TBB=ON \ -D WITH_OPENCL=ON .. ``` 在上面的命令中,我们启用了dnn模块,并将其它一些选项设置为了编译OpenCV所需的值。 5. 编译OpenCV:使用以下命令编译OpenCV: ``` make -j4 ``` 在这个例子中,我们使用了-j4参数来指定使用4个线程来加快编译速度。 6. 安装OpenCV:使用以下命令安装OpenCV: ``` sudo make install ``` 现在,您已经重新编译OpenCV,并选择安装了dnn模块。你可以使用OpenCV的dnn模块来进行深度学习任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值