Skip to content

arucoモジュールでマーカーを生成する

atinfinity edited this page May 8, 2017 · 18 revisions

arucoモジュールでマーカーを生成する

はじめに

OpenCVのarucoモジュールではマーカーを生成する機能が提供されています.
ここではサンプルコードを交えながらマーカー生成機能を紹介します.

APIの説明

  • 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);

    // マーカー画像生成
    int marker_id   = 0;
    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;
}

実行結果

marker_image

おわりに

ここではOpenCVのarucoモジュールで提供されているマーカー生成機能を紹介しました.

備考

筆者は以下の環境で動作確認しました.

  • OpenCV 3.2.0
  • Windows 10 Pro(64bit)
  • Visual Studio 2015 Professional

Menu

Computer Vision

GPGPU

AR

ROS

Docker

Jetson

ARM

プログラミング言語

開発環境

勉強会

Clone this wiki locally