を読み込むことができません、私はこのコードを使用してそれを保存しています:がFLANNインデックスにすべての記述子を追加した後保存したFLANNインデックス
flann = cv2.flann.Index()
for index, filename in enumerate(os.listdir('images')):
img2 = cv2.imread('images/' + filename, 0)
kp2, des2 = surf.detectAndCompute(img2, None)
des_all = np.concatenate((des_all, des2))
print "Training..."
flann.build(des_all, index_params)
print "Saving..."
flann.save('saved_index')
これは正しくすべての情報を含むバイナリファイルを作成します。
しかし、私は苦労してロード同じファイルです。私は、その内容をロードするために正しいのparamsを供給している場合でも:
flann = cv2.flann.Index()
des_all = np.empty((281578, 64), dtype=np.float32)
flann.load(des_all, 'saved_index')
私はnp.zeros
でnp.empty
を切り替えるには、手動でdes_all.flags.writeable = True
を使用して書き込み可能な配列を設定していないが、それでも何もしてみました。
Numpyアレイの形状とタイプは正しいです。ファイルパスにも同じことが適用されます。間違った値を使用しようとすると、コンソールに警告が表示されます。
私のdes_all
配列は常にゼロで埋められ、そのインデックスの検索は常に何も返しません。
提案がありますか?
実際に訓練されたFLANNのデータを保存する方法を教えてください。いくつかのコードは多くの助けになります。ありがとう。 – Yaroslav