1

aruco を使用してマーカーを検出しています。

   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 です。私はすべての提案を受け入れます。

4

1 に答える 1

0

3D ビジュアライゼーションに OpenCV Viz ライブラリを利用できます。実際、OpenCV Viz は OpenSceneGraph の簡易版です。OpenCV 2.4 以降を使用している場合、Viz がデフォルトです。OBJ および PLY 形式のメッシュ ファイルをサポートします。ARUCO の rvec/tvec 出力を使用して、Viz で 3D オブジェクトを変換できます。サンプル コード スニペットについては、私の投稿をご覧ください。(クリック) OpenCV 2.4 版はこちら、3.1 版はこちら。

于 2017-01-06T15:25:13.510 に答える