我无法将OpenCV与英特尔Realsense Viewer source code.
集成注意: 我目前正在使用Windows 10。
我正在使用视觉工作室2017. msvc 14.12
opencv版本是3.4.1(windows pack),它是为您预先构建的版本。
我构建并安装了intel realsense sdk from github。这很成功。我还使用OpenCV examples构建并成功安装了openCV I downloaded。
当我尝试将OpenCV与realsense viewer project
相关联时出现问题我尝试将openCV与Intel Realsense Viewer链接的步骤:
在visual studio中打开intel realsense sdk解决方案(即名为librealsense2的.sln)
转到visual studio内“解决方案资源管理器”面板中的realsense-vewier项目
右键点击项目'realsense-viewer',然后选择属性
确保上面的2个下拉框中包含“x64”和“所有配置”
转到C / C ++ - >常规选项(从左侧白框中)然后转到“其他包含目录”
在目录中添加%OpenCVDownloadRoot%/ build / include和%OpenCVDownloadRoot%/ build / include / opencv(这是示例OpenCV项目的配置
现在,openCV中的一些函数没有在'realsense-viewer'项目中正确链接(这很奇怪,因为SDK中的OpenCV项目中的工作,即使属性是相同的。错误如下:
然后我按照一些额外的步骤来看看我是否可以让它发挥作用。
在属性对话框(我们刚刚进入)中,而不是选择C / C ++,选择'链接器'
在“其他库目录”选项中,添加%OpenCVDownloadRoot%/ build / x64 / vc15 / lib
在“链接器”属性中,搜索输入(链接器 - >输入)
在“附加依赖项”选项中添加“opencv_world341d.lib”。
现在没有识别现实库。除上述情况外,未修改其他任何属性。我可以确认步骤10会导致所有这些错误。即使我在执行所有步骤后反转步骤10的操作,上述错误仍然存在 - >这必须是一个视觉工作室的错误。
有关如何在Visual Studio 2017中使用OpenCV 3.4.1 + realsense-viewer(来自SDK)的任何帮助或提示?
编辑:我已经读过: What is an undefined reference/unresolved external symbol error and how do I fix it?
但是我已经正确地链接了glfw和所有其他需要链接的东西,以便错误消息消失。我相信这个问题可能是英特尔的错误,或者是一个需要解决方法的错误
答案 0 :(得分:1)
在公园散步后找到解决方案(假设您使用的是Windows 10,2017年的Visual Studio项目):
进入您当地的librealsense项目文件夹
转到C:\Users\yourName\to\your\local\realsense\folder\librealsense\tools\CMakeLists.txt
将其添加到文件末尾:
find_package(OpenCV REQUIRED)
列表(APPEND DEPENDENCIES realsense2 $ {OpenCV_LIBS})
这样整个文件都是这样的:
最低要求的cmake版本:3.1.0 cmake_minimum_required(VERSION 3.1.0)
项目(RealsenseTools)
在构建输出集中保存命令行编译命令(CMAKE_EXPORT_COMPILE_COMMANDS 1)
在构建期间查看makefile命令
设置(CMAKE_VERBOSE_MAKEFILE开启)
此参数用于在构建
时禁用图形示例保存到磁盘的目标。选项(BUILD_GRAPHICAL_EXAMPLES“构建图形示例。”ON)
include(CheckCXXCompilerFlag)CHECK_CXX_COMPILER_FLAG(“ - std = c ++ 11” COMPILER_SUPPORTS_CXX11)CHECK_CXX_COMPILER_FLAG(“ - std = c ++ 0x” COMPILER_SUPPORTS_CXX0X)if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS“$ {CMAKE_CXX_FLAGS} -std = c ++ 11”)elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS“$ {CMAKE_CXX_FLAGS} -std = c ++ 0x”)endif()
如果(BUILD_GRAPHICAL_EXAMPLES) find_package(OpenGL的) if(NOT OPENGL_FOUND) 消息(FATAL_ERROR“\ n \ n缺少OpenGL包!\ n \ n”) ENDIF()
set(DEPENDENCIES realsense2 ${OPENGL_LIBRARIES}) if(WIN32) list(APPEND DEPENDENCIES glfw3) else() # Find glfw header find_path(GLFW_INCLUDE_DIR NAMES GLFW/glfw3.h PATHS /usr/X11R6/include /usr/include/X11 /opt/graphics/OpenGL/include /opt/graphics/OpenGL/contrib/libglfw /usr/local/include /usr/include/GL /usr/include ) # Find glfw library find_library(GLFW_LIBRARIES NAMES glfw glfw3 PATHS /usr/lib64 /usr/lib /usr/lib/${CMAKE_LIBRARY_ARCHITECTURE} /usr/local/lib64 /usr/local/lib /usr/local/lib/${CMAKE_LIBRARY_ARCHITECTURE} /usr/X11R6/lib ) if(APPLE) find_library(COCOA_LIBRARY Cocoa) find_library(IOKIT_LIBRARY IOKit) find_library(COREVIDEO_LIBRARY CoreVideo) LIST(APPEND DEPENDENCIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY}) endif() list(APPEND DEPENDENCIES m ${GLFW_LIBRARIES} ${LIBUSB1_LIBRARIES}) include_directories(${GLFW_INCLUDE_DIR}) endif() else() set(DEPENDENCIES realsense2) if(NOT WIN32) list(APPEND DEPENDENCIES m ${LIBUSB1_LIBRARIES}) endif() endif()
允许此项目访问opencv find_package(OpenCV REQUIRED)
find_package(OpenCV REQUIRED) set(DEPENDENCIES realsense2 $ {OpenCV_LIBS})
add_subdirectory(terminal)add_subdirectory(fw-logger) add_subdirectory(enumerate-devices)add_subdirectory(realsense-viewer) add_subdirectory(data-collect)add_subdirectory(深度质量) add_subdirectory(rosbag-检查员)
然后使用cmake gui重建项目