2

opencv に含まれているサンプルの 1 つ、find_obj.py を実行しようとしています。OpenCV バージョン: 2.4 OS: ArchLinx

関数にエラーがあります:

flann = cv2.flann_Index(desc2, flann_params)

エラーは次のとおりです。

File "find_obj2.py", line 27, in match_flann
    flann = cv2.flann_Index(desc2, flann_params)
TypeError: <unknown> is not a numpy array

誰でもこれを修正する方法を知っていますか?

4

1 に答える 1

5

解決策が見つかりました: find_obj.py の次の行を置き換えました:

surf = cv2.SURF(1000)
kp1, desc1 = surf.detect(img1, None, False)
kp2, desc2 = surf.detect(img2, None, False)
desc1.shape = (-1, surf.descriptorSize())
desc2.shape = (-1, surf.descriptorSize())

それらと:

surf_det = cv2.FeatureDetector_create("SURF")
surf_ext = cv2.DescriptorExtractor_create("SURF")
kp1 = surf_det.detect(img1)
kp2 = surf_det.detect(img2)
kp1, desc1 = surf_ext.compute(img1, kp1)
kp2, desc2 = surf_ext.compute(img2, kp2)

これが他の誰かを助けることを願っています... :D

于 2012-05-26T14:51:28.557 に答える