見習い魔法使いの日常

果たして魔法が使える日は訪れるのか!?

Python3、OpenCVセットアップ

OpenCVを触ることになり、Python3で公式チュートリアルをやりました

その中で、突然エラーを吐かれてその対処に3時間苦労した箇所があったためメモ代わりに書いておきます

OpenCV-Pythonチュートリアル
OpenCV: OpenCV-Python Tutorials

OpenCVの導入はこちらのサイトを参考...というか言われたとおりにやりました
blog.amedama.jp
非常にわかりやすいサイトで個人的にこれくらいの記事を書きたいなと思うところです


順調に進み何事もなく終わると思いきや、特徴量の抽出の部分でエラーが!!
はじめはOpenCV3.0.0-Pythonチュートリアルを試していたのですが、

>>> import cv2
>>> sift = cv2.SIFT()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'cv2' has no attribute 'SIFT'

調べていくと、OpenCV3.1.0-Pythonチュートリアルがあり、同じ内容でコードが違うところを発見しました
よかった、これで終わるとと思いきや...

>>> import cv2
>>> sift = cv2.xfeatures2d.SIFT_create()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'cv2' has no attribute 'xfeatures2d'

アリャリャ??

そこで辿りついたのがこちらのサイト
danglingfarpointer.hatenablog.com

どうやらSIFTやSURFはOpenCV3から別のモジュールとして扱われてるみたい

brewでインストールする時に

brew install opencv3 --with-contrib --with-python3

としてあげればインポートできました

これだけに3時間も要してしまうなんて、私もまだまだ情弱のようです