如何在python中将opencv对象导出到磁盘?

时间:2018-02-28 12:12:30

标签: python opencv image-processing machine-learning computer-vision

我正在尝试将opencv的单词图像描述符提取器对象(cv2.BOWImgDescriptorExtractor)导出到磁盘。我已经尝试过opencv的FileStorage类和cPickle,但它们都没有用。

这是我用来创建对象的代码:

sift = cv2.xfeatures2d.SIFT_create()
bowDiction = cv2.BOWImgDescriptorExtractor(sift, cv2.BFMatcher(cv2.NORM_L2))

然后使用opencv中的FileStorage类:

f = cv2.FileStorage('test.yml',flags=1)
f.write(name='bowDict',val=bowDiction)
f.release()

这返回了一个错误说:

TypeError: val is not a numpy array, neither a scalar

当我尝试使用cPickle来挑选对象时,它返回了:

TypeError: can't pickle cv2.BOWImgDescriptorExtractor objects

我查看了许多来源,但没有找到任何结论,所以是否有适当的文档存储此对象的方法?

1 个答案:

答案 0 :(得分:0)

初始化BOWExtractor对象很快,因此也许不需要存储它。 但是从BOW Kmeans培训师集群获取词汇需要时间。因此,也许我们可以在获取词汇后对其进行存储,并将其加载到BOWExtractor的setVocabulary中