D言語 + OpenCV (Ane Marker Detector)

Loading...

Sign in or sign up now!
Alert icon
Upgrade to the latest Flash Player for improved playback performance. Upgrade now or more info.
3,608
Loading...
Alert icon
Sign in or sign up now!
Alert icon

Uploaded by on Aug 6, 2009

=== 今回したこと

今まで ARToolkit, NyARToolKit と 勉強させて頂きましたが、
どうしても自分で実装したくなり、D言語で組んでみました。

...といいながら結局のところ、OpenCVの関数に頼りっぱなし、
処理内容は大御所ライブラリと殆ど同じだったりします。..orz


=== プログラムの説明

単一マーカー("ane" Marker)のみ認識できます。

方向認識用カラーテンプレート画像は予め読み込まれています。

四角形が検出された場合、射影変換された画像(以下、射影画像)が
画面左下に表示されます。


=== 表示される文字の意味

"Lost":
画像から四角形を検出出来ません。

"Unknown":
四角形が検出されるものの、それが何か認識出来ません。
黄色の棒と赤い枠の交わるところが cvFindContours で検出された四頂点の始点です。
この状態の時、マーカーの方向が定まっていないので、射影画像は回転します。

"0 ~ 270[deg]":
検出された四角形の射影画像と、予め読み込まれたテンプレート画像(反時計周りに90度づつ回転)
を比較することによって、マーカーがどれだけ回転しているかわかります。
この状態の時、検出された四頂点に回転角度分だけ逆回転をかけることで、
緑色の棒と赤い枠の交わるところが 0[deg]時の射影画像左上に固定されます。


=== 勉強および参考にさせていただいたサイトなど

Square Detector(cvCvtColor, cvThreshold, cvFindContours , cvApproxPoly, cvContourArea, cvCheckContourConvexity)

OpenCV11pre1a\samples\c\squares.c
OpenCV11pre1a\cv\src\cvcalibinit.cpp

Homography (cvFindHomography, cvWarpPerspective)
http://chihara.naist.jp/opencv/?%BC%CD%B1%C6%CA%D1%B4%B9

Pattern Matching (cvMatchTemplate, cvMinMaxLoc)
http://opencv.jp/sample/matching.html#template

Camera Calibration (cvCalibrateCamera2, cvFindExtrinsicCameraParams2)
http://opencv.jp/sample/camera_calibration.html#calibration

  • likes, 1 dislikes

Link to this comment:

Share to:
see all

All Comments (1)

Sign In or Sign Up now to post a comment!
  • Amazing! Good stuff!

Loading...

Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more