Entrenar un OpenCV DescriptorMatcher puede ser una operación lenta si el conjunto de imágenes de entrenamiento es grande. Por lo tanto, parece que guardar los datos entrenados de DescriptorMatcher en el disco para volver a cargarlos más tarde sería algo bastante obvio de querer hacer.Guardar y cargar FlannBasedMatcher
Desafortunadamente, no parece haber ninguna solución obvia a esta necesidad.
Lo más parecido que he encontrado para encontrar una respuesta es this thread in the OpenCV discussion group. El hilo comenzó en 2009, ¡y la gente todavía está buscando una respuesta en 2011!
Este fragmento de código tomado de ese hilo parece que debería volver a cargar un índice de un archivo:
FileStorage fs("data.xml",FileStorage::READ);
Mat data;
fs["mtx"] >> data;
flann::Index idx(data,"index.bin");
pero no he sido capaz de averiguar de este cómo implementar la funcionalidad completa de salvar/carga.
Solo en caso de que sea relevante, estoy usando OpenCV 2.3.1.
Nota: según tengo entendido, los descriptores deben ser serializados/deserializados por separado. Al cargar, _prior_ para llamar a readIndex, los descriptores deben ser deserializados y agregados (es decir, con FlannBasedMatcher :: add). – sircolinton