keep-loving-pythonのブログ

Pythonを愛し続けたいです(Pythonが流行っている限りですが。。。)

解決策(訂正)。cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\flann\src\miniflann.cpp:336: error: (-210:Unsupported format or combination of formats) in function 'cv::flann::buildIndex_'

解決策。cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\flann\src\miniflann.cpp:336: error: (-210:Unsupported format or combination of formats) in function 'cv::flann::buildIndex_'

エラー

環境

windows10
python3.7
opencv-python4.6.0

エラー

解決策。cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\flann\src\miniflann.cpp:336: error: (-210:Unsupported format or combination of formats) in function 'cv::flann::buildIndex_'

エラーの全体

Traceback (most recent call last):
  File "pano_stitch.py", line 68, in <module>
    matches = flann.knnMatch(descriptors1, descriptors2, k=2)
cv2.error: OpenCV(4.6.0) D:\a\opencv-python\opencv-python\opencv\modules\flann\src\miniflann.cpp:336: error: (-210:Unsupported format or combination of formats) in function 'cv::flann::buildIndex_'
> type=0

関連サイト

以下のコードを使っていたときに。。。。エラーに出会いました。

https://github.com/PacktPublishing/OpenCV-with-Python-By-Example

解決策(これが正しい)

型を強引に合わすのではなく、下記の回答を参考にして下さい。

https://stackoverflow.com/questions/43830849/opencv-use-flann-with-orb-descriptors-to-match-features

解決策(← 間違い)

型をfloat32にする。

    matches = flann.knnMatch(descriptors1, descriptors2, k=2)

↓ 以下のように変更する。

    matches = flann.knnMatch(descriptors1.astype(np.float32), descriptors2.astype(np.float32), k=2)

参考

以下の記事の内容は、参考になりました。

Unsupported format or combination of formats in buildIndex using FLANN algorithm - OpenCV Q&A Forum

コメント

お役に立てば、、、、いいね、とか、宜しくーーー。 不明点等あれば、コメント下さい。