如何在python中保存词袋数据?

2024-09-28 20:56:28 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

sift=cv2.xfeatures2d.SIFT_create()
descriptors_unclustered=[]
dictionarysize=800
BOW=cv2.BOWKmeansTrainer(dictionarysize)
for p in training-paths :
    kp,dsc=sift.detectAndCompute(image,None)
    BOW.add(dsc)

dictionary=BOW.cluster()
bowdiction=cv2.BOWImgDescriptorExtractor(sift, cv2.BFMatcher(cv2.NORM_L2))
bowdiction.setvocabulary(dictionary)

我想保存这个弓形文字数据以便以后使用。我不想每次都等待这些计算,所以我如何保存这些数据?在


Tags: 数据代码dictionarycreatecv2descriptorssiftdsc
1条回答
网友
1楼 · 发布于 2024-09-28 20:56:28

使用pickle进行此操作

  1. 将弓保存到pickle:

    import pickle
    
    sift=cv2.xfeatures2d.SIFT_create()
    descriptors_unclustered=[]
    dictionarysize=800
    BOW=cv2.BOWKmeansTrainer(dictionarysize)
    for p in training-paths :
        kp,dsc=sift.detectAndCompute(image,None)
        BOW.add(dsc)
    
    with open('bow_pickle.pickle', 'wb') as f:
    pickle.dump(f)
    
  2. 从pickle返回数据:

    import pickle    
    with open('bow_pickle.pickle', 'rb') as f:
        BOW = pickle.load(f)    
    dictionary=BOW.cluster()
    bowdiction=cv2.BOWImgDescriptorExtractor(sift,cv2.BFMatcher(cv2.NORM_L2))
    bowdiction.setvocabulary(dictionary)
    

相关问题 更多 >