Я обнаруживаю функции SURF в изображении, а затем записываю их в файл yml
. Затем я хочу снова загрузить функции из файла yml
, чтобы попытаться обнаружить объект, но в настоящий момент у меня возникают проблемы с загрузкой ключевых точек, чтобы нарисовать их на изображении.Загрузка сохраненных ключевых точек SURF
Я пишу так, как ключевые точки:
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);