バージョン
OpenCV for Unity:2.3.2
Unity:2018.3.14f1
ArUcoDictionary
マーカーのタイプを指定するもの.
public ArUcoDictionary dictionaryId = ArUcoDictionary.DICT_6X6_250;
上記の
【6X6】の部分でビット数を指定し,
【250】の部分で使用するマーカーの個数を指定している.
このコードの場合は,「6X6ビットのマーカーを250個まで使用する」という意味になる.
ビット数が小さく,使用するマーカーの数が少ないほど,エラーに対して堅牢になる.
MarkerType
- Canonical Marker
- 基本的なマーカー.
- 複数個使用でき,それぞれのマーカーを別々に識別する.
- 参考:https://docs.opencv.org/master/d5/dae/tutorial_aruco_detection.html
- Grid Board
- Canonical Makerが一定の感覚で配置されているもの.
- マーカー間の相対位置が既知なため,全てのマーカーからボード全体の向き(姿勢)を推定できる.
- ボードの一部しか見えていない場合やオクルージョンが発生した場合でもCanonical Makerよりも高精度に姿勢推定ができる.
- (おそらく一つしか使えない.)
- 参考:https://docs.opencv.org/3.4/db/da9/tutorial_aruco_board_detection.html
- ChAruco Board
- チェス盤(Chessboard)とArUcoを組み合わせたもの(ChAruco Board).
- Grid Boardよりも高精度なので,カメラキャリブレーション等に使用できる.
- 一つしか使えない.
- 参考:https://docs.opencv.org/3.4/df/d4a/tutorial_charuco_detection.html
- Ch Aruco Diamond Maker
- ChAruco Boardと違って,複数個使うことができる.
- Canonical Markerより高精度.
- 参考:https://docs.opencv.org/master/d5/d07/tutorial_charuco_diamond_detection.html
WebCamTextureToMatHelper
- Webカメラ周りのことを色々とやってくれる便利なやつ.
- 映像をテクスチャからMatに変換してくれたり,カメラのFpsやWidth,Height等も教えてくれる.
FpsMonitor
謎
ArUco Create Marker Example
上記の『Ch Aruco Diamond Maker』を除いた3種類のマーカを生成できる.
ここで生成したマーカーがうまく認識されない場合は,画像を反転させると認識してくれる.自分がそうであった.
ARマーカーのID抽出
if(ids.get(0, 0) != null)
{
Debug.Log("ID number:" + ids.get(0, 0).GetValue(0));
}
- ids.get( x, 0 ) の x 部分がx個目に認識されたマーカー.
- そのマーカーをGetValue(0)することでマーカーIDを手に入れられる.
- 参考:https://qiita.com/hsgucci/items/37becbb8bfe04330ce14