プログラミングに関する私的メモ(現在:OpenGL・OpenCV・ARToolKit・Kinect・Unity)

参考:ARtoolKitサンプルのexview
arGetTransMat( markerInfo[k], pattCenter, pattWidth, pattTrans );

/* カメラ座標系におけるマーカ原点の座標 */
double mx = pattTrans[0][3];
double my = pattTrans[1][3];
double mz = pattTrans[2][3];

/* カメラ座標系におけるマーカの法線ベクトル */
double nx = pattTrans[0][2];
double ny = pattTrans[1][2];
double nz = pattTrans[2][2];

/* マーカ座標系基準のカメラ位置・クォータニオン */
double      cam_trans[3][4];
double      quat[4], pos[3];
if( arUtilMatInv( pattTrans, cam_trans ) < 0 ) return;      // 逆変換
if( arUtilMat2QuatPos( cam_trans, quat, pos) < 0 ) return;  // 座標とクォータニオンの抽出…?

/* ウィンドウ座標系におけるマーカの中心・頂点座標 */
double winPos[5][2]
// 中心
winPos[0][0] = markerInfo[k].pos[0];       winPos[0][1] = markerInfo[k].pos[1];
// 角
/*
dir=0: 左上→右上→右下→左下
dir=1:       右上→右下→左下→左上
dir=2: …
dir=3: …

常に左上の角をとりたい → vertex[(4-dir)%4]
*/
winPos[1][0] = markerInfo[k].vertex[0][0]; winPos[1][1] = markerInfo[k].vertex[0][1];
winPos[2][0] = markerInfo[k].vertex[1][0]; winPos[2][1] = markerInfo[k].vertex[1][1];
winPos[3][0] = markerInfo[k].vertex[2][0]; winPos[3][1] = markerInfo[k].vertex[2][1];
winPos[4][0] = markerInfo[k].vertex[3][0]; winPos[4][1] = markerInfo[k].vertex[3][1];

このページへのコメント

MkOhVu <a href="http://glqtxfpqxelm.com/">glqtxfpqxelm</a>, [url=http://jorwiwchflqo.com/]jorwiwchflqo[/url], [link=http://vrddrivtjwph.com/]vrddrivtjwph[/link], http://wpzaffvwlaaz.com/

0
Posted by nqpmicwmhr 2013年11月22日(金) 00:19:57 返信

1uzu7x <a href="http://iqnjlhlhattu.com/">iqnjlhlhattu</a>, [url=http://aevjuhjxnbeb.com/]aevjuhjxnbeb[/url], [link=http://hycycunasqil.com/]hycycunasqil[/link], http://uymxbiornaac.com/

0
Posted by fopfpab 2013年11月22日(金) 00:02:58 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます