2012-04-13 7 views
1

私はアンドロイドAndroidのOpenCVの一覧<KeyPoint>

のためのOpenCVからstereouncalibratedrectify使用しようとしていると私はJavaでマットに一覧から変換する方法を見つけることができませんでしたが、OpenCVのC++では、我々はマットを作成することができますをマットにベクトルから

これは私がやったステップです:

//find fundamental matrix 
//srcmatchkey and dstmatchkey are List<Point> as required in findFundamentalMat function,  

they have been calculated using FLANN Matcher 


Cali3D.findFundamentalMat(srcMatchKey, dstMatchKey, Calib3d.FM_8POINT); 

//this is the strange part 

Calib3D.stereoRectifyUncalibrated(Mat points1,Mat,points1,Mat fundamentalMatrix,Mat H1,Mat H2) 

私が理解から、マットのポイントとマットpoints2がsrcMatchKeyとdstMatchKey(または私は間違っている??午前から作られたマットです、それを修正してください場合それは間違っています)、Matコンストラクタはありません。 cceptedリストや、C++のベクタのようなもの、Mat C++はそれを持っています。

ですから質問はアンドロイドでリストからマットを作成する方法はありますか?あなたの助けに感謝...

答えて

2

あなたは、AndroidのためのOpenCVの2.3.1を使用している場合は、マットにリストを変換するコードは次のとおりです。それができるstereoRectifyUncalibrated()について

List<Point> lp = null; 
    Mat mp = Converters.vector_Point_to_Mat(lp); 

か話:

Mat mp = Converters.vector_Point2d_to_Mat(lp); 

Android用のOpenCV 2.4.betaでは、すべてList<T>タイプがMatOfTタイプに置き換えられ、ネイティブとJavaの間でデータをコピーするのを防止します。

+0

ありがとうございます、これを試してみます – euclid135