gpt4 book ai didi

python - 如何使用 Fast-Downward 编译 OpenCV

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:24 24 4
gpt4 key购买 nike

我正在进行一项学术研究,基于 Fast-Downward 实现新的搜索算法,一个实现多个 Search Algorithms 的 C++ 开源以及许多搜索域和问题。还安装了Lab ,一个管理编译和运行脚本的 Python 包。

最近我试图包括 OpenCV ML 算法库,以便将这些算法集成到我的搜索算法中。

但是我在我的FD项目中包含一些库时鼓励了一些问题,并且无法使用FD编译OpenCV。

项目层次结构:

fast_downward
| -- benchmarks
| -- experiments
| -- lab
| -- misc
| -- src
| | -- preprocess
| | -- search
| | -- translate
| | -- VAL
| | -- ML

ML目录就是我要编译的新子目录

编译尝试:

src/CMakeLists.txt下:

include(ML/CMakeLists.txt)

add_subdirectory(ML)

但是编译失败。

老实说,我从未尝试过编辑 CMake 文件,而且我不知道该策略以及如何去做。

所以,我的问题是如何在我的主项目中集成 OpenCV 包/子文件夹(在我名为 ML 的项目中)?

编辑:

Distributor ID: Ubuntu
Description: Ubuntu 14.04 LTS
Release: 14.04

最佳答案

你不需要include(ML/CMakeLists.txt)add_subdirectory(ML)应该在src/CMakeLists.txt里面就够了.
现在,我们一般可以有两种情况:

  1. 您在系统范围内安装了 OpenCV(例如通过 apt-get 等),因此您使用系统版本的 OpenCV
  2. 您在项目中包含了 OpenCV 的源代码。您构建它并使用此版本的 OpenCV。

这两种情况需要以稍微不同的方式处理。

系统级 OpenCV 安装

让我们假设 OpenCV 安装在您系统的某处。然后在 src/ML/CMakeLists.txt 中你应该有如下几行:

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(test ${YOUR_SOURCES} ${YOUR_HEADERS})
target_link_libraries(test ${OpenCV_LIBS})

这是为了生成一个可执行文件,但是如果你想生成一个库,你应该有 add_library(...) 而不是 add_executable(...) .如果您需要 OpenCV 的特定组件,您应该使用 find_package(OpenCV REQUIRED COMPONENTS core imgproc ...) 请求它,当然还可以查阅 OpenCV 文档。请注意,您的 CMake 可能没有 FindOpenCV.cmake 脚本,因此您可能无法使用 find_package(OpenCV)。在这种情况下,您需要从网上获取一个。还要查阅它的来源,因为它可能定义了包含包含和库的不同变量,这意味着可能会发生这种情况,而不是使用例如 target_link_libraries(test ${OpenCV_LIBS}) 你应该使用 target_link_libraries(测试 ${OpenCV_LIBRARIES})

您下载并包含在包内/包外的 OpenCV 源

在这种情况下,我想您在系统的某个目录中有 OpenCV 包/源;请注意,在这种情况下您需要构建 OpenCV,apt-get 不会为您完成这项工作。在您的 src/ML/CMakeLists.txt 中,您将拥有类似的内容

ExternalProject_Add(my_opencv
CMAKE_ARGS -D BUILD_SHARED_LIBS=NO ...
CMAKE_INSTALL_PREFIX=${MY_OPENCV_INSTALLATION_DIR}
SOURCE_DIR ${PATH_TO_OPENCV_SRCS}
)

find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(test ${YOUR_SOURCES} ${YOUR_HEADERS})
target_link_libraries(test ${OpenCV_LIBS})

值得引用的资源有:
OpenCV intro: cmake
linking opencv libraries included as an external project via cmake
Configuring an c++ OpenCV project with Cmake
Could not find module FindOpenCV.cmake ( Error in configuration process)
CMake and OpenCV 3.0
sample FindOpenCV.cmake

关于python - 如何使用 Fast-Downward 编译 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41519477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com