-
Notifications
You must be signed in to change notification settings - Fork 13
arucoモジュールでマーカーを生成する
atinfinity edited this page May 14, 2017
·
18 revisions
OpenCVのarucoモジュールはマーカーを生成する機能を提供しています.
ここではサンプルコードを交えながらマーカー生成機能の使い方を紹介します.
-
cv::aruco::getPredefinedDictionary
:定義済みの辞書を取得する関数- 第一引数:定義済みの辞書名
- 定義済みの辞書名はこちらを参照のこと
-
cv::aruco::DICT_6X6_250
は6x6 bitのマーカーで250通りのパターンがあることを示している -
cv::aruco::DICT_ARUCO_ORIGINAL
は本家ArUcoのマーカー.5x5 bitのマーカーで1024通りのパターンがあることを示している
- 第一引数:定義済みの辞書名
-
cv::aruco::drawMarker
:マーカー画像を生成する関数- 第一引数:cv::Ptrcv::aruco::Dictionary型の変数
- 第二引数:マーカーID
- 第三引数:マーカー画像のサイズ
- 第四引数:マーカー画像を格納する変数
#include <opencv2/core.hpp>
#include <opencv2/aruco.hpp>
#include <opencv2/highgui.hpp>
int main(int argc, const char* argv[])
{
// dictionary生成
const cv::aruco::PREDEFINED_DICTIONARY_NAME dictionary_name = cv::aruco::DICT_4X4_50;
cv::Ptr<cv::aruco::Dictionary> dictionary = cv::aruco::getPredefinedDictionary(dictionary_name);
// マーカー画像生成
const int marker_id = 0;
const int side_pixels = 200;
cv::Mat marker_image;
cv::aruco::drawMarker(dictionary, marker_id, side_pixels, marker_image);
// 生成したマーカー画像を表示
cv::imshow("marker_image", marker_image);
cv::waitKey(0);
return 0;
}
ここではOpenCVのarucoモジュールで提供されているマーカー生成機能の使い方を紹介しました.
- http://docs.opencv.org/3.2.0/d9/d6a/group__aruco.html
- http://docs.opencv.org/3.2.0/d5/dae/tutorial_aruco_detection.html
- https://github.com/opencv/opencv_contrib/blob/3.2.0/modules/aruco/samples/create_marker.cpp
筆者は以下の環境で動作確認しました.
- OpenCV 3.2.0
- Windows 10 Pro(64bit)
- Visual Studio 2015 Professional