gpt4 book ai didi

c++ - 使用 aruco 和 opencv4 的未解析符号

转载 作者:行者123 更新时间:2023-12-02 17:20:18 29 4
gpt4 key购买 nike

我正在尝试使用来自 opencv 的相机姿势。所以我正在关注 this series 的教程,这导致我包括这些:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/aruco.hpp>
#include <opencv2/calib3d.hpp>
一切正常,但 aruco 一个。首先它不在我的 opencv 包(4.3 版)中,所以我不得不去寻找它并将它放在我的 opencv 包含目录中(我添加了 aruco.hpp 以及包含 charuco.hppdictionary.hpp 的 aruco 文件夹)。我搜索了在我的 opencv lib 目录 (x64) 中添加的 opencv_aruco310d.lib 文件。
我使用 this tutorial 安装了 opencv
但是当我尝试运行我的代码时,它给了我这个错误:

Error LNK2019 external symbol unresolved "void __cdeclcv::aruco::drawMarker(struct cv::Ptrconst &,int,int,class cv::debug_build_guard::_OutputArray const&,int)"(?drawMarker@aruco@cv@@YAXAEBU?$Ptr@VDictionary@aruco@cv@@@2@HHAEBV_OutputArray@debug_build_guard@2@H@Z)referenced in the function "void __cdecl createArucoMarkers(void)"(?createArucoMarkers@@YAXXZ) ConsoleApplication1


好像和这行代码有关:
aruco::drawMarker(markerDictionary, i, 500, outputMarker, 1);
我知道我在这里遇到了版本问题,我想我在某处看到 opencv3 之后不支持 aruco 所以我尝试使用 opencv3.4 但它仍然无法正常工作。
我该如何解决我的问题?先感谢您。

最佳答案

发生这种情况是因为您下载了与当前版本的 OpenCV 库不兼容的 aruco 模块版本。解决它的最佳方法是编译 OpenCV,指定要添加 opencv_contrib 库。为避免出现问题,让我们对 OpenCV contrib 和 OpenCV 使用相同的版本:例如 4.3.0。
一、下载OpenCV 4.3.0 source code .
二、下载OpenCV Contrib 4.3.0 source code .
如果您已将它们作为 ZIP 下载,则将它们解压缩到两个不同的文件夹中。
然后您将需要 CMake,下载并为 Windows 配置它(也许 this link 可能会有所帮助)。
要使用 OpenCV contrib 编译 OpenCV,您需要使用 CMake 和以下命令:

cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
如指定 here .在 CMake 的 GUI 版本中,您需要指定参数 OPENCV_EXTRA_MODULES_PATH OpenCV contrib 源代码中包含“模块”文件夹的路径。
之后,您只需要构建代码(例如,将 Visual Studio 设置为使用 CMake 的编译器,您将拥有一个可用于构建代码的 sln 解决方案)。
编辑:您可能还需要设置环境变量,您可以按照所说的 here 执行此操作.

关于c++ - 使用 aruco 和 opencv4 的未解析符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62536268/

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