Как я могу сослаться на автономную установку OpenCV, несмотря на наличие другой версии OpenCV в ROS

У меня есть ROS в системе, и он поставляется с opencv2.4.2. Я также установил opencv с sourceforge.net, который является opencv2.4.8 после блога samontab.

Теперь у меня есть исходный код, который при запуске автоматически выбирает opencv2.4.2. Я хочу, чтобы программа работала с использованием opencv2.4.8.

Я попытался добавить это в CMakeLists.txt

include_directories("/home/sai/workspace/opencv-2.4.8/include/opencv")
link_directories("/home/sai/workspace/opencv-2.4.8/lib")
set(OpenCV_LIBS
"opencv_gpu;opencv_contrib;opencv_legacy;opencv_objdetect;opencv_calib3d;opencv_features2d;opencv_video;opencv_highgui;opencv_ml;opencv_imgproc;opencv_flann;opencv_core")

find_package(OpenCV 2.4.8 REQUIRED)

target_link_libraries(exec {OpeCV_LIBS})

Но все же он использует Opencv, который поставляется с ROS, а также выдает такую ​​ошибку

             from /home/sai/workspace/loop_detector_on_depth_images/depth_loops/generic/src/dbow/FBit.h:5,
from /home/sai/workspace/loop_detector_on_depth_images/depth_loops/generic/src/dbow/FBit.cpp:1:

/opt/ros/fuerte/include/opencv2/flann/lsh_table.h: В функции-члене void cvflann :: lsh :: LshTable :: add (cvflann :: Matrix) ’:
/opt/ros/fuerte/include/opencv2/flann/lsh_table.h:196:14: ошибка: «use_speed_» не было объявлено в этой области

а также

pkg-config --cflags opencv говорит

-I/opt/ros/fuerte/include/opencv -I/opt/ros/fuerte/include

0

Решение

Наконец-то это решено.

По ссылке http://answers.ros.org/question/61923/how-to-use-newer-versions-of-opencv-in-fuerte/

Я изменил и перешел в / opt / ros / fuerte / include и изменил имя opencv2 на opencv2bak. Таким образом, он находит правильное включает. Я не думаю, что это правильный способ сделать это, хотя.

Кроме того, зашел в /opt/ros/fuerte/share/OpenCV/OpenCVConfig.cmake и отредактировал переменную пути установки в / usr / local (где я установил)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]