使用Aruco Marker的第一步就是先把這些marker印出來
有些人會說他已經設置好了OpenCV的library為什麼沒有aruco的函式庫可以用
這是因為還沒有裝好他的擴充函式庫
這個要另外下載
可以參考我之前寫的這篇 opencv - set up extra module
或是這個影片(聽不懂英文沒關係, 跟著做就對了)
---
#include <iostream>
#include "opencv2\opencv.hpp"
#include "opencv2\aruco.hpp"
#include <direct.h>
#include <string>
using namespace std;
using namespace cv;
int main()
{
Mat outputImg;
Ptr <aruco::Dictionary> markerDic = aruco::getPredefinedDictionary(aruco::PREDEFINED_DICTIONARY_NAME::DICT_4X4_50);
for (int index = 0; index < 50; index++)
{
aruco::drawMarker(markerDic, index, 500, outputImg, 1); //把放在markerDic裡的marker放到輸出圖(outputImg)裡
string folderName = ".//markers//"; //設定放置的資料夾名稱
_mkdir(folderName.c_str()); //新建資料夾
imwrite(folderName + to_string(index) + ".png", outputImg); //儲存圖片
}
system("pause");
return 0;
}
---
這是範例程式碼
使用 aruco::getPredefinedDictionary 函式先取得二維標誌的資料
再用 aruco::drawMarker 把二維標誌的圖像畫到 Mat圖像上
run下去之後應該可以在叫做 markers的資料夾找到所有的二維標誌png圖像
其中
aruco::PREDEFINED_DICTIONARY_NAME::DICT_4X4_50
代表這是4x4大小的marker有50張
而幾乘幾的marker是以扣掉外圈的黑色裡面的格子數而定
--
最後選幾張自己想要用來做實驗的印出來就可以囉
No comments:
Post a Comment