2017-06-02 4 views
0

Wie ein cv2-Objekt (genauer gesagt eine Liste oder ein np.array, das diese Objekte enthält), z. B. Schlüsselpunkte (Typ: cv2.KeyPoint) oder Übereinstimmungen (Typ: cv2.DMatch) an eine Datei auf der Festplatte ablegen, um sie später zu importieren anstatt einen zeitaufwendigen Algorithmus (mehrere Stunden bis zu Tagen auf einem Low-End-Computer) auf einer großen Anzahl von Bildern (> 50'000) wiederzugeben?Python OpenCV dump ein cv2-Objekt in Datei?

Es funktioniert nicht mit (c) Pickle. Typische Fehler sind:

PicklingError: Can't pickle <type 'cv2.KeyPoint'>: it's not the same object as cv2.KeyPoint 

oder

PicklingError: Can't pickle <type 'cv2.DMatch'>: it's not the same object as cv2.DMatch 

Und ich keine dump oder Speichern/Export-Methode auf cv2 finden.

Das Skript läuft Python 2.7 sowohl auf Ubuntu 16.04 und Windows 7.

Antwort

0

Wenn Sie auf Speichern Eigenpunkte in einem Text/Beize Datei hartnäckig sind, dann müssen Sie das Keypoint Objekt konvertieren, so dass es Beize-fähig ist .

Verwenden Sie die SO-Antwort here, um das Objekt in ein picklefähiges Format zu zerlegen und es wieder in Ihren Code zu laden.