OpenCV使用XML文件读写Mat数据

OpenCV有时想把Mat数据(比如一个小小的矩阵)保存到文件中,然后在其他地方读入使用怎么办呢?

FileStorage是opencv中XML和YAML文件的存储类。

1. 写XML操作完整代码

Mat cameraMatrix = Mat(3, 3, CV_32FC1, Scalar::all(0)); //初始化Mat

/***********对Mat进行操作,赋值等等***************/

cv::FileStorage fs("cameraMatrix.xml", cv::FileStorage::WRITE);

fs << "cameraMatrix" << cameraMatrix;

2. 读XML操作完整代码 

	Mat cameraMatrix = Mat(3, 3, CV_32FC1, Scalar::all(0)); //初始化Mat

	cv::FileStorage fs("cameraMatrix.xml", cv::FileStorage::READ);//新建并打开一个XML文件

	fs ["cameraMatrix"] >> cameraMatrix;//写入数据,注意fs[""]只需要文件名不需要文件后缀

这里需要注意一点,fs[" "]里面的参数只用写文件名,不用写后缀。这个坑我踩过,惨痛的教训。

 

猜你喜欢

转载自blog.csdn.net/qq_41951658/article/details/106944016
今日推荐