粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

anacondaやpipでSIFTやSURFを使えるようにする。Contribパッケージの入れ方。

Windows側のAnacondaで環境を改変したのでメモ。

OpenCVでSIFTが使えない問題

出るよね。こういうエラー。

module 'cv2' has no attribute 'xfeatures2d' anaconda

OpenCV3以降になってからSIFTやSURF等のライセンスが必要な奴らはcontribというExtensionみたいなフォルダに分離され,普通のインストールでは入らなくなっています。
解決法はcontribを自分でコンパイルするか,誰かがコンパイルしたのをいただく事。

なお,2017年12月のROS Kinetic のモジュールにはきちんと含まれています。
なのでウチのUbuntuPCでは大丈夫。
問題はWindowsのPCでおこりました。

セットアップ内容は以下を参照
ossyaritoori.hatenablog.com

Anacondaでの解決法

以下を参照。contribを含むパッケージを探します。
OpenCV 3(core + contrib)をWindows & Python 3の環境にインストール&OpenCV 2とOpenCV 3の違い&簡単な動作チェック - Qiita

以下の通りでダウングレードはしましたが無事使えるようになりました。

conda install -c https://conda.anaconda.org/menpo opencv3

pip 使いのための解決法

普段pipを使っている人はこちら。

pipとAnaconda併用するとわけわからない事になりがち。
どうもVerの新しい方が優先されるっぽい?

contribも別で配布しているので両方入れるには以下の様にやります。

pip install opencv-python
pip install opencv-contrib-python

以下の記事もあったりしてどれがいいかはちょっとよくわかっていないです。
qiita.com

どう使うか

マッチングのやり方とかは公式OR以下の例を参照。
ossyaritoori.hatenablog.com

結論

Anacondaを使っている以上はできるだけconda使うべきかもしれない。