gpt4 book ai didi

c++ - 加载保存的 SURF 关键点

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

我正在检测图像中的 SURF 特征,然后将它们写入 yml 文件。然后我想再次从 yml 文件加载特征以尝试检测对象,但目前我无法加载关键点以将它们绘制在图像上。

我是这样写要点的:

cv::FileStorage fs("keypointsVW.yml", cv::FileStorage::WRITE);
write(fs, "keypoints_1", keypoints_1);
fs.release();

我正在尝试这样阅读它们:

cv::FileStorage fs2("keypointsVW.yml", cv::FileStorage::READ);
read(fs2, "keypoints_1", keypoints_1);
fs2.release();

但这会产生大量错误。

检测和绘制代码:

    cv::Mat img_1 = cv::imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE);
int minHessian = 400;
cv::SurfFeatureDetector detector(minHessian);
std::vector<cv::KeyPoint> keypoints_1;
detector.detect(img_1, keypoints_1);
cv::Mat img_keypoints_1;
//......write code
//.......read code
drawKeypoints(img_1, keypoints_1, img_keypoints_1);
imshow("keypoints_1", img_keypoints_1);

最佳答案

找到解决方案,我会把它贴在这里,以防其他人遇到同样的问题。

std::vector<cv::KeyPoint> testPoints;
cv::FileStorage fs2("keypointsVW.yml", cv::FileStorage::READ);
cv::FileNode kptFileNode = fs2["keypointsVW"];
read(kptFileNode, testPoints);
fs2.release();

关于c++ - 加载保存的 SURF 关键点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27841067/

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