タイトルの通り、OpenCV 3.x (バージョン 3 は厳密) を使用して、arUco ライブラリからカスタム作成された辞書をファイルするためにシリアル化する必要があります。
2 番目のステップは、ファイルから辞書を再度ロードすることです。
オンラインで例を見つけることができなかったか、部分的に成功しました。
どんな助けでも大歓迎です!
タイトルの通り、OpenCV 3.x (バージョン 3 は厳密) を使用して、arUco ライブラリからカスタム作成された辞書をファイルするためにシリアル化する必要があります。
2 番目のステップは、ファイルから辞書を再度ロードすることです。
オンラインで例を見つけることができなかったか、部分的に成功しました。
どんな助けでも大歓迎です!
このコードを使用して保存します。
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);