Skip to main content

AttributeError: ‘module’ object has no attribute ‘xfeatures2d’ エラーの解決案

python で opencv を利用していて、SIFT や SURF が入っている xfeatures2d を参照しようとしたら以下のエラーメッセージが表示されます。

Traceback (most recent call last):
  File "test.py", line 7, in <module>
    sift = cv2.xfeatures2d.SIFT_create()
AttributeError: 'module' object has no attribute 'xfeatures2d'

原因

opencv 3以降、SIFT や SURF などのアルゴリズムが入っている xfeatures2d が opencv の標準機能から外されました。ソースコードも別のレポジトリに格納されています。

Read More

import cv2 で Symbol not found: xxxxx エラーが発生

python で opencv を利用しようとして、import cv2 を実行したら以下のようなエラーが表示されます。

$ python
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.7/site-packages/cv2.so, 2): Symbol not found: __ZL11pyopencv_toIN2cv3VecIfLi2EEEEbP7_objectRT_PKc
  Referenced from: /Library/Python/2.7/site-packages/cv2.so
  Expected in: flat namespace 
 in /Library/Python/2.7/site-packages/cv2.so

Read More

import cv2 で ImportError: No module named cv2 エラーが発生

python で opencv を利用しようとして、import cv2 を実行したら以下のエラーメッセージが表示されます。

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    import cv2
ImportError: No module named cv2

原因

原因はモジュールファイル cv2.so を python が見つけられないためです。(または見つかっているが読み込み権限がない、ファイル自体が破損しているなど)

Read More

macOS の Python に OpenCV を組み込む

opencv を python の拡張モジュールとして組み込むと python で opencv の関数や機能をそのまま利用できるようになります。正しく組み込んだ場合、以下のように opencv の関数を呼び出します。

import cv2
img = cv2.imread("/pictures/sample.png")

このように簡単に画像ファイルの読み込み機能を利用できます。

一方、opencv のモジュールを正しく組み込めない場合、以下のエラーメッセージが表示されます。

import cv2
ImportError: No module named cv2

Read More

macOS で OpenCV をビルドする

ビルドするには CMake アプリが必要ですのでそれをまずダウンロードします。

CMake を入手

CMake の公式ダウンロードページより macOS 版をダウンロードします。 dmgtar.gz の2つのバージョンがありますがどちらでも大丈夫です。私の場合 tar.gz を利用します。

ダウンロードした tar.gz ファイルをダブルクリックで解凍し、Application フォルダーにドラッグして移動します。

Read More