gpt4 book ai didi

c++ - 如何将 std::vector 保存到 C++ 中的文本文件

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:09 25 4
gpt4 key购买 nike

在我的代码中,我将关键点插入到 vector 中,如代码所示,谁能告诉我如何将其保存到文本文件中。

Mat object = imread("face24.bmp",  CV_LOAD_IMAGE_GRAYSCALE);

if( !object.data )
{
// std::cout<< "Error reading object " << std::endl;
return -2;
}

//Detect the keypoints using SURF Detector

int minHessian = 500;

SurfFeatureDetector detector( minHessian );

std::vector<KeyPoint> kp_object;

detector.detect( object, kp_object );

我想将 kp_ob​​ject vector 保存到一个文本文件中。

最佳答案

您可以使用 FileStorage 写入和读取数据,而无需编写自己的序列化代码。对于写作,您可以使用:

std::vector<KeyPoint> keypointvector;
cv::Mat descriptormatrix
// do some detection and description
// ...
cv::FileStorage store("template.bin", cv::FileStorage::WRITE);
cv::write(store,"keypoints",keypointvector;
cv::write(store,"descriptors",descriptormatrix);
store.release();

对于阅读,你可以做类似的事情:

cv::FileStorage store("template.bin", cv::FileStorage::READ);
cv::FileNode n1 = store["keypoints"];
cv::read(n1,keypointvector);
cv::FileNode n2 = store["descriptors"];
cv::read(n2,descriptormatrix);
store.release();

这当然是针对二进制文件的。这实际上取决于您想要促进什么;如果你以后想把txt文件解析成Matlab,你会发现它很慢。

关于c++ - 如何将 std::vector<KeyPoint> 保存到 C++ 中的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19074380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com