Python OpenCV将cv2对象转储到文件中?

时间:2017-06-02 09:08:43

标签: python opencv pickle cv2

如何转储cv2对象(更准确地说是列表或包含这些对象的np.array),例如关键点(类型:cv2.KeyPoint)或匹配(类型:cv2.DMatch),磁盘上的文件以便以后导入它们而不是在许多图像上重新运行一个时间消耗(在低端计算机上几个小时到几天)算法(> 50'000)?

它不适用于(c)Pickle。 典型的错误是:

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

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

我在cv2上找不到任何dump或保存/导出方法。

该脚本在Ubuntu 16.04和Windows 7上使用Python 2.7运行。

1 个答案:

答案 0 :(得分:0)

如果您坚持在文本/ pickle文件中保存关键点,则必须转换Keypoint对象以使其具有可选性。

使用SO回答here将对象分解为可拾取格式并将其加载回代码。