【问题标题】:redefinition of class when I use calib3d.hpp in opencv当我在opencv中使用calib3d.hpp时重新定义类
【发布时间】:2019-06-08 10:22:44
【问题描述】:

我正在一个 C++ 项目中使用 ubuntu 16.4,我正在尝试在 opencv2/calib3d.hpp 中使用一个函数,但没有任何成功。

例如,我使用 cv::Point3d 没有任何问题,但是一旦添加 ,我就会收到以下错误:

/usr/local/include/opencv2/features2d/features2d.hpp:69:错误: 'class cv::KeyPoint' 类 CV_EXPORTS_W_SIMPLE 的重新定义 关键点

这是我的代码:

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/calib3d.hpp>

int main()
{
    std::cout << "cv hello"<< std::endl;
    return 0;
}

当我使用“ pkg-config --modversion opencv ”来使用opencv的版本时,我得到“3.1.0”

我的想法是我安装了几个版本的 opencv 并且存在冲突。 我在想,因为在完成的命题中,当我添加
#include ,我有几个等效的 calib3d.hpp 命题。

我如何知道我是否安装了多个版本?

【问题讨论】:

标签: c++ opencv ubuntu


【解决方案1】:

不确定这是否费力,但您可以使用 Cmake 指定 OpenCV 版本。

find_package(OpenCV 3.2 REQUIRED PATHS "/path/to/OCV3.2/install/dir/")

检查来自@gabriel-devillers 的答案:

https://stackoverflow.com/a/45752688/10889595

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2023-03-09
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多