OpenCV 3 和 ArUco lib - 序列化字典

Posted

技术标签:

【中文标题】OpenCV 3 和 ArUco lib - 序列化字典【英文标题】:OpenCV 3 and ArUco lib - Serialize Dictionary 【发布时间】:2016-02-09 13:49:31 【问题描述】:

作为标题,我需要序列化以使用 OpenCV 3.x(版本 3 严格)从 arUco 库中归档自定义创建的字典。

第二步是从文件中再次加载字典。

我无法在网上找到示例或部分成功。

感谢任何帮助!

【问题讨论】:

字典只是一个具有三个公共成员的类:Mat bytesListint markerSizeint maxCorrectionBits。你不能保存和加载它们到/从FileStorage 吗? 【参考方案1】:

使用此代码保存:

int number= 10, dimension=7;
cv::aruco::Dictionary dictionary = cv::aruco::generateCustomDictionary(number, dimension);
cv::Mat store=dictionary.bytesList;
cv::FileStorage fs("dic_save.yml", cv::FileStorage::WRITE);
fs << "MarkerSize" << dictionary.markerSize;
fs << "MaxCorrectionBits" << dictionary.maxCorrectionBits;
fs << "ByteList" << dictionary.bytesList;
fs.release();

使用此代码阅读:

cv::FileStorage fsr("dic_save.yml", cv::FileStorage::READ);
int mSize, mCBits;
cv::Mat bits;
fsr["MarkerSize"] >> mSize;
fsr["MaxCorrectionBits"] >> mCBits;
fsr["ByteList"] >> bits;
fsr.release();
cv::aruco::Dictionary dic = cv::aruco::Dictionary(bits, mSize, mCBits);

【讨论】:

以上是关于OpenCV 3 和 ArUco lib - 序列化字典的主要内容,如果未能解决你的问题,请参考以下文章

使用Python,OpenCV生成Aruco标记

使用 aruco 和 opencv4 的未解析符号

带有openCv的Aruco标记,获取3d角坐标?

翻译OpenCV文档:ArUco Marker的检测 (Detection of ArUco Markers)

opencv中ArUco模块实践

带有特定标记的 OpenCV 自定义 Aruco 字典?