C++でOpenCVアプリケーションと一緒にEigen3ライブラリを使用するのに問題があります。次のコマンドを使用して、UbuntuにEigen3ライブラリをインストールしました。
sudo apt-get install libeigen3-dev
次のコマンドを使用してコンパイルすると、サンプルのEigen3アプリケーションをコンパイルして使用できます(Eigen3ライブラリがインストールされて動作します)。
g++ -I/usr/include/eigen3 Eig.cpp -o Eig
インストールされているEigenライブラリをOpenCVで使用したい。
次のフラグを使用してOpenCVソースをコンパイルしました。
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=OFF -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON USE_EIGEN=/usr/include/eigen3 ..
私のOpenCVコードには、次のヘッダーと名前空間が含まれています。
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <assert.h>
#include <opencv2/core/eigen.hpp>
using namespace cv;
using namespace std;
using namespace Eigen;
ただし、通常OpenCVアプリケーションをコンパイルすると、コンパイラで次のエラーが発生します。
In file included from Read.cpp:6:
/usr/local/include/opencv2/core/eigen.hpp:54: error: expected ‘,’ or ‘...’ before ‘::’ token
/usr/local/include/opencv2/core/eigen.hpp: In function ‘void cv::eigen2cv(int)’:
/usr/local/include/opencv2/core/eigen.hpp:56: error: ‘src’ was not declared in this scope
/usr/local/include/opencv2/core/eigen.hpp:56: error: ‘Eigen’ is not a class or namespace
/usr/local/include/opencv2/core/eigen.hpp:60: error: ‘dst’ was not declared in this scope
/usr/local/include/opencv2/core/eigen.hpp:66: error: ‘dst’ was not declared in this scope
この問題を解決するにはどうすればよいですか?