2016-10-10 10 views
1

私はarucoを使ってマーカーを検出しています。QT C++ - マーカーベースの拡張現実

std::vector<int> ids; 
    std::vector<std::vector<cv::Point2f> > corners; 

    cv::aruco::detectMarkers(image, dictionary, corners, ids); 
    if (ids.size() > 0) 
     cv::aruco::drawDetectedMarkers(imageCopy, corners, ids); 

drawDetectedMarkersメソッドを使用するには、マーカーに3Dオブジェクトを追加します。私はC#言語で実装されている同様のプロジェクトを見ました。私は彼らの団結オブジェクトを取った。しかし、どの3Dオブジェクトをマーカー上に置くのが最善の方法であるかわからない。 openscenegraphやopenglを使うべきですか?このプロセスでもマーカーボードを使用することができます。私はリアルタイムでrvec(ボードの回転ベクトル)とtvec(ボードの平行移動ベクトル)値を得ました。 3dオブジェクト(QT)で初めてのことです。私はすべての提案に開放されています。

答えて

0

3D視覚化のためにOpenCV Vizライブラリを利用できます。実際OpenCV VizはOpenSceneGraphの簡略版です。 OpenCV 2.4以降をお持ちの場合、Vizはデフォルトです。 OBJおよびPLY形式のメッシュファイルをサポートしています。 ARUCOのrvec/tvec出力を使用してVizの3Dオブジェクトを変換できます。サンプルコードスニペットについては、私の記事をご覧ください。 (Click)OpenCV 2.4バージョンの場合はhere、3.1バージョンの場合はhereをクリックします。

関連する問題