当前位置: 首页 > news >正文

内蒙网站建设宁津建设局网站

内蒙网站建设,宁津建设局网站,手机网站建设和,在苏州找学生做家教在哪个网站调试opencv源码的两种方式 上两篇我们分别讲了如何配置opencv环境,以及如何编译opencv源码方便我们阅读。但我们还是无法调试我们的代码,无法以我们的程序作为入口来一步一步单点调试看opencv是如何执行的。 【opencv源码解析0.1】VS如何优雅的配置ope…

调试opencv源码的两种方式

上两篇我们分别讲了如何配置opencv环境,以及如何编译opencv源码方便我们阅读。但我们还是无法调试我们的代码,无法以我们的程序作为入口来一步一步单点调试看opencv是如何执行的。

【opencv源码解析0.1】VS如何优雅的配置opencv环境
【opencv源码解析0.2】如何编译opencv库源码

为此我们介绍两种调试opencv的方法。

1、通过VS配置来调试

在上一篇文章中,我们生成了opencv源码工程,基于该工程,我们可以生成debug版本的动态链接库opencv_world460d.dll,以及调试信息文件opencv_world460d.pdb。

我们想要调试opencv的源码,只需要将这两个文件拷贝到我们自己项目的可执行文件的同级目录内即可。

例如我们一直在使用的test_link_opencv这个工程:

在这里插入图片描述

完成拷贝后,直接在工程中打断点进行单步调试,即可进入opencv源码内调试了。

2、通过在opencv源码内部进行调试

上面的方法可以使我们基于我们自己的项目,来调试opencv的源码。但上篇文章中我们已经构建了opencv源码工程了,如果仅仅是为了学习、阅读源码,我们可以在opencv源码工程内进行调试。

首先opencv提供了许多examples示例程序,我们在cmake-gui的options中,找到选项

  • BUILD_EXAMPLES:构建示例程序

并勾选,然后重新点击configure和Generate:

在这里插入图片描述

然后重新打开我们的VS工程,就可以找到官方提供的例程了:

在这里插入图片描述

我们可以将配置改为Debug x64模式,再将其中一个例程设为可执行程序,就可以直接调试了。

如果例程的内容不是你想调试的内容,那你也可以建一个自己的例程项目,然后在该项目里写自己想要调试的代码,这要怎么做到呢?

我们在opencv\sources\samples\cpp\CMakeLists.txt文件中,可以看到该cmake文件对该samples路径下的每一个.cpp文件,都应用了

ocv_define_sample(tgt ${sample_filename} ${package})

这个函数,这个函数位于opencv\sources\samples\samples_utils.cmake:

# Utility function: adds sample executable target with name "example_<group>_<file_name>"
# Usage:
#   ocv_define_sample(<output target> <relative filename> <group>)
function(ocv_define_sample out_target source sub)get_filename_component(name "${source}" NAME_WE)set(the_target "example_${sub}_${name}")if(OPENCV_DUMP_EXAMPLE_TARGET)message(STATUS "Example: ${the_target}    (${source})")endif()add_executable(${the_target} "${source}")if(TARGET Threads::Threads AND NOT OPENCV_EXAMPLES_DISABLE_THREADS)target_link_libraries(${the_target} PRIVATE Threads::Threads)endif()set_target_properties(${the_target} PROPERTIES PROJECT_LABEL "(sample) ${name}")if(ENABLE_SOLUTION_FOLDERS)set_target_properties(${the_target} PROPERTIES FOLDER "samples/${sub}")endif()if(WIN32 AND MSVC AND NOT BUILD_SHARED_LIBS)set_target_properties(${the_target} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:atlthunk.lib /NODEFAULTLIB:atlsd.lib /DEBUG")endif()# Should be usable in stand-alone build scenarioif((NOT DEFINED INSTALL_BIN_EXAMPLES AND WIN32) OR INSTALL_BIN_EXAMPLES)if(NOT DEFINED OPENCV_SAMPLES_BIN_INSTALL_PATH)set(OPENCV_SAMPLES_BIN_INSTALL_PATH "samples")endif()install(TARGETS ${the_target} RUNTIME DESTINATION "${OPENCV_SAMPLES_BIN_INSTALL_PATH}/${sub}" COMPONENT samples)endif()# Add single target to build all samples in the group: 'make opencv_samples_cpp'set(parent_target opencv_samples_${sub})if(NOT TARGET ${parent_target})add_custom_target(${parent_target})if(TARGET opencv_samples)add_dependencies(opencv_samples ${parent_target})endif()endif()add_dependencies(${parent_target} ${the_target})set(${out_target} ${the_target} PARENT_SCOPE)
endfunction()

该函数将每一个samples路径下的.cpp文件,都单独生成为了一个exe可执行项目,因此呢,我们要往samples内添加我们自己的项目也很简单,只需要在路径

opencv\sources\samples\cpp\文件夹内添加一个.cpp文件即可。

我们添加一个sherad_opencv.cpp文件:

在这里插入图片描述

然后重新在cmake-gui内点击configure和Generate按钮,然后重新打开opencv的VS源码工程,就可以看到我们添加的shredOpencv项目了:

在这里插入图片描述

http://www.yayakq.cn/news/688311/

相关文章:

  • 沈阳网站建设沈阳建网站网站
  • 快印店网站建设84wzjs建网站先要申请网址吗
  • 鄂州网站设计制作宽屏大气企业网站源码
  • 网站动态和静态的区别ps网页设计说明书
  • 昆明专业做网站建站目的
  • 做网站域名的成本成都网站制作沈阳
  • 怎么搭建自己的博客网站建设中网站源码
  • 建设银行成都官网招聘网站十大网站
  • ftp上传网站之后怎么做深圳住建局最新通知
  • 建网站卖东西视频网站的制作教程
  • 网站建站报价wordpress获取首页地址
  • 百度蜘蛛站长服务平台python报修网站开发源码
  • 整站下载器 做网站地图网站内部链接如何进行优化建设
  • 四川建站模板网站公司大连网络营销公司有哪些
  • discuz论坛和网站同步登录原创先锋 北京网站建设
  • 做营销型网站的公司方城网站建设
  • 建设部办公厅网站wordpress 4 编辑器
  • 网站建设招代理苏州中设建设集团有限公司网站
  • 下载类网站 建设方案长沙网站公司
  • 长沙小学网站建设自己做的网站怎么被百度收录
  • 广东营销网站制作招聘网站套餐
  • 建站吧网站建设怎么用本机做服务器发布网站
  • 网站怎么做电脑系统下载企业培训心得体会
  • 购物网站app宣传型网站建设
  • 网站点内页还是首页合肥城市建设网站
  • 外管局网站做延期收汇报告网页游戏排行榜前十名歌
  • 人力资源公司网站模板下载网站建设运行情况简介
  • 浏览器网站在线进入广州网站建设建设
  • 手机整人网站怎么做北京网页设计哪家好
  • 解决问题的网站电子商务网站策划书3500字