【问题标题】:Use Cmake with PCL and OpenCV将 Cmake 与 PCL 和 OpenCV 一起使用
【发布时间】:2017-10-09 16:08:06
【问题描述】:

我是计算机视觉的新手。在 Cmake 上,我正在尝试将 PCL 和 OpenCV 与 2D 激光雷达传感器一起使用。

我看过这个教程:[http://unanancyowen.com/en/pcl18/#Download1

为了在 CmakeLists.txt 上配置 PCL,使用以下代码:

cmake_minimum_required( VERSION 2.8 )
# Create Project
project( solution )
add_executable( project main.cpp )
set_property( DIRECTORY PROPERTY VS_STARTUP_PROJECT "project" )

# Find Packages
find_package( PCL 1.8 REQUIRED )

if( PCL_FOUND )
  # Additional Include Directories
  # [C/C++]>[General]>[Additional Include Directories]
  include_directories( ${PCL_INCLUDE_DIRS} )

  # Preprocessor Definitions
  # [C/C++]>[Preprocessor]>[Preprocessor Definitions]
  add_definitions( ${PCL_DEFINITIONS} )
  #add_definitions( -DPCL_NO_PRECOMPILE )

  # Additional Library Directories
  # [Linker]>[General]>[Additional Library Directories]
  link_directories( ${PCL_LIBRARY_DIRS} )

  # Additional Dependencies
  # [Linker]>[Input]>[Additional Dependencies]
  target_link_libraries( project ${PCL_LIBRARIES} )
endif()

configure CmakeLists.txt for OpenCV,代码如下:

cmake_minimum_required( VERSION 3.6 )

# Create Project
project( solution )
add_executable( project main.cpp )
set_property( DIRECTORY PROPERTY VS_STARTUP_PROJECT "project" )

# Find OpenCV
set( OpenCV_DIR "C:/Program Files/opencv/build" )
find_package( OpenCV REQUIRED )

# Project Settings for OpenCV
if( OpenCV_FOUND )
  # Additional Include Directories
  # [C/C++]>[General]>[Additional Include Directories]
  include_directories( ${OpenCV_INCLUDE_DIRS} )

  # Additional Library Directories
  # [Linker]>[General]>[Additional Library Directories]
  link_directories( ${OpenCV_LIB_DIR} )

  # Additional Dependencies
  # [Linker]>[Input]>[Additional Dependencies]
  target_link_libraries( project ${OpenCV_LIBS} )
endif()

如何制作 CmakeLists.txt 以同时使用两者? PCL 和 OpenCV。

【问题讨论】:

    标签: opencv cmake point-cloud-library


    【解决方案1】:

    在网站上找到了我得到这些文件的答案: http://unanancyowen.com/en/pcl18/#comment-1221

    这是拉取 OpenCV 和 PCL 的代码:

    cmake_minimum_required( VERSION 2.8 )
    # Create Project
    project( solution )
    add_executable( project main.cpp )
    
    # Set StartUp Project (Option)
    # (This setting is able to enable by using CMake 3.6.0 RC1 or later.)
    set_property( DIRECTORY PROPERTY VS_STARTUP_PROJECT "project" )
    
    # Find Packages
    # Find PCL
    find_package( PCL 1.8 REQUIRED )
    
    # Find OpenCV
    set( OpenCV_DIR "C:/Program Files/opencv/build" )
    find_package( OpenCV REQUIRED )
    
    if( PCL_FOUND AND OpenCV_FOUND )
      # [C/C++]>[General]>[Additional Include Directories]
      include_directories( ${PCL_INCLUDE_DIRS} )
      include_directories( ${OpenCV_INCLUDE_DIRS} )
    
      # [C/C++]>[Preprocessor]>[Preprocessor Definitions]
      add_definitions( ${PCL_DEFINITIONS} )
    
      # For Use Not PreCompiled Features 
      #add_definitions( -DPCL_NO_PRECOMPILE )
    
      # [Linker]>[General]>[Additional Library Directories]
      link_directories( ${PCL_LIBRARY_DIRS} )
      link_directories( ${OpenCV_LIB_DIR} )
    
      # [Linker]>[Input]>[Additional Dependencies]
      target_link_libraries( project ${PCL_LIBRARIES} )
      target_link_libraries( project ${OpenCV_LIBS} )
    endif()
    

    在这个link 上有一个旧的解释,这里是我关于OpenCV here 的问题。

    【讨论】:

    • 你选择了“Visual Studio 14 2015 Win64”吗?最新的 (3.2.0) 预构建 OpenCV 包仅包含 Visual Studio 2015 x64 的库。因此,如果您只想使用 PCL 和 OpenCV 的预构建包,您应该使用 Visual Studio 2015 和 x64 目标作为开发环境。如果您想了解更多信息,我建议您发布到 OpenCV 的用户问答论坛。
    【解决方案2】:

    要在同一个项目中同时使用 PCL 和 OpenCV,你可以在最小行中编写 CMakeLists.txt 文件,如下所示:

    cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
    
    project(project_name)
    
    find_package(PCL 1.4 REQUIRED)
    find_package(OpenCV REQUIRED)
    
    include_directories(${PCL_INCLUDE_DIRS} )
    link_directories(${PCL_LIBRARY_DIRS} )
    add_definitions(${PCL_DEFINITIONS} )
    
    add_executable (project_executable main.cpp)
    target_link_libraries (project_executable ${PCL_LIBRARIES} ${OpenCV_LIBS})
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 2015-04-08
      • 2019-01-07
      相关资源
      最近更新 更多