keep-loving-pythonのブログ

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

解決策。AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d_SURF'

解決策。AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d_SURF'

エラーの内容

エラー

AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d_SURF'

エラーの全体

Traceback (most recent call last):
  File "panorama.py", line 76, in <module>
    conn_images, features, p = largest_connected_subset(all_images)
  File "panorama.py", line 22, in largest_connected_subset
    finder = cv2.xfeatures2d_SURF.create()
AttributeError: module 'cv2.cv2' has no attribute 'xfeatures2d_SURF'

環境

windows10
python3.7
opencv_python 4.5.3

解決策

解決策1

特許等の関係で、SURFに対応できていません。
よって、 xfeatures2d_SURFを別の仕組みであるORB等に書き換えれば動きます。

    ##finder = cv2.xfeatures2d_SURF.create()
    finder = cv2.ORB.create()

解決策2

opencv_pythonopencv-contrib-pythonとかに替えると動いたような記憶あり。

コメント

不明点等あれば、コメント下さい。わかれば回答します。