使用OpenCV读取yml文件

使用OpenCV读取yml文件,opencv,file-io,Opencv,File Io,使用OpenCV,我想在不同的图像中找到关键点,并将它们保存在硬盘上。这对于保存部分非常有效。要保存我使用的关键点,请执行以下操作: Mat it; it = imread( "pic1.jpg", IMREAD_GRAYSCALE); vector<KeyPoint> keypoints; detector.detect( (it), keypoints ); FileStorage fs("keypoint1.yml", FileStorage::WRITE); write( f

使用OpenCV,我想在不同的图像中找到关键点,并将它们保存在硬盘上。这对于保存部分非常有效。要保存我使用的关键点,请执行以下操作:

Mat it;
it = imread( "pic1.jpg", IMREAD_GRAYSCALE);
vector<KeyPoint> keypoints;
detector.detect( (it), keypoints );
FileStorage fs("keypoint1.yml", FileStorage::WRITE);
write( fs , "keypoint", keypoints );
fs.release();
Mat;
it=imread(“pic1.jpg”,imread\u灰度);
矢量关键点;
检测器。检测((it),关键点);
FileStorage fs(“keypoint1.yml”,FileStorage::WRITE);
写入(fs,“关键点”,关键点);
fs.release();
当我尝试使用以下命令再次读取文件时:

vector<KeyPoint> keypoint1s;
FileStorage fs2("keypoint1.yml", FileStorage::READ);
FileNode kptFileNode = fs2["keypoint1"];
read( kptFileNode, keypoint1s );
fs2.release();
向量关键点1s;
FileStorage fs2(“keypoint1.yml”,FileStorage::READ);
FileNode kptFileNode=fs2[“keypoint1”];
读取(kptFileNode,keypoint1s);
fs2.释放();

如果我这样做,“keypoint1s”是空的。怎么了?

读取时,变量名称错误:

FileNode kptFileNode=fs2[“keypoint1”];
应该是

FileNode kptFileNode=fs2[“keypoint”];
这对我很有用:

向量关键点;
关键点:推回(1);
关键点:推回(2);
FileStorage fs(“keypoint1.yml”,FileStorage::WRITE);
写入(fs,“关键点”,关键点);
fs.release();
向量新关键点;
FileStorage fs2(“keypoint1.yml”,FileStorage::READ);
FileNode kptFileNode=fs2[“keypoint”];
读取(kptFileNode,newKeypoints);
fs2.释放();

谢谢!对不起,我完全监督了这件事。