OpenCV 3 和 ArUco lib - 序列化字典
OpenCV 3 and ArUco lib - Serialize Dictionary
作为标题,我需要使用 OpenCV 3.x(版本 3 是严格的)从 arUco 库中序列化以提交自定义创建的字典。
第二步是从文件中再次加载字典。
我无法在网上找到示例或部分成功。
感谢任何帮助!
使用此代码保存:
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.x(版本 3 是严格的)从 arUco 库中序列化以提交自定义创建的字典。
第二步是从文件中再次加载字典。
我无法在网上找到示例或部分成功。
感谢任何帮助!
使用此代码保存:
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);