ROS に他のバージョンの OpenCV バージョンがあるにもかかわらず、スタンドアロンの OpenCV インストールを参照するにはどうすればよいですか?

StackOverflow https://stackoverflow.com//questions/21012421

質問

システムには ROS があり、opencv2.4.2 が付属しています。また、samontab ブログに従って、sourceforge.net から opencv2.4.8 である opencv もインストールしました。

これで、実行時に自動的に 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})

しかし、それでもROSに付属のOpencvを使用しており、次のようなエラーも発生します

             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

役に立ちましたか?

解決

ついに解決しました。

リンクから 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 (私がインストールした場所) に編集しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top