переопределение класса, когда я использую calib3d.hpp в opencv - PullRequest
0 голосов
/ 14 января 2019

Я работаю над Ubuntu 16.4 в проекте C ++ и пытаюсь использовать функцию в opencv2 / calib3d.hpp, но безуспешно.

У меня нет проблем с использованием, например, cv :: Point3d, но как только я добавляю, я получаю следующую ошибку:

/ usr / local / include / opencv2 / features2d / features2d.hpp: 69: ошибка: переопределение класса cv :: KeyPoint, класса CV_EXPORTS_W_SIMPLE KeyPoint

Вот мой код:

#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.

Как узнать, установлена ​​ли у меня несколько версий?

1 Ответ

0 голосов
/ 28 января 2019

Не уверен, что это слишком сложно, но вы можете указать версию OpenCV с помощью Cmake.

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

Проверьте этот ответ от @ gabriel-devillers:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...