2種類のMatを出力するプログラム
#include <opencv2/opencv.hpp> using namespace cv; int main() { Mat matA = (cv::Mat_<double>(3,3) << 1, 0, 0, 0, 1, 0, 0, 0, 1); Mat matB = cv::Mat::ones(5, 5, CV_8U)*3; FileStorage cvfs("D:/test.xml", CV_STORAGE_WRITE); write(cvfs,"matA", matA); write(cvfs,"matB", matB); }
出力されたxmlファイルの中身.
<?xml version="1.0"?> <opencv_storage> <matA type_id="opencv-matrix"> <rows>3</rows> <cols>3</cols> <dt>d</dt> <data> 1. 0. 0. 0. 1. 0. 0. 0. 1.</data></matA> <matB type_id="opencv-matrix"> <rows>5</rows> <cols>5</cols> <dt>u</dt> <data> 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3</data></matB> </opencv_storage>
読み込む方のプログラム
int main() { Mat ma, mb; FileStorage cvfs("D:/test.xml", CV_STORAGE_READ); FileNode node(cvfs.fs, NULL); read(node["matB"], mb); read(node["matA"], ma); std::cout << ma << std::endl; std::cout << mb << std::endl; }
0 件のコメント:
コメントを投稿