Python とビルド済みのOpenCVバイナリパッケージ
スポンサーリンク
ビルド済みのOpenCVバイナリパッケージについてメモ書き。 あくまでもPython向けにOpenCV 3.xをインストールする方法の1つです。
非力なマシンに最適。
背景
そもそもOpenCVソースコード自体にPython用のバインディングは含まれています。ただソースからビルドするか、OpenCVのバイナリをインストール後に必要なファイルを所定の場所にコピー((すればPythonからOpenCVを使用できます。
この場合の難点はOpenCVのビルド時に検出されたPythonのバージョンでしか使用できないという問題があります。
環境によっては有効化されていないモジュールがある可能性がありますがそこまでは調査していません。あしからず。
前提
前提条件は次のとおり。
この記事を書いている時点で最新版は3.4.2.17。バージョン番号はOpenCVのバージョンに対応します。
現時点でOpenCVの最新版は3.4.3。このライブラリ(というかビルド済みバイナリ)は3.4.2に対応しています。
PythonのバージョンとCPUアーキテクチャ別のビルド済みパッケージというのがこの記事で紹介しているPythonモジュール。
あくまでも非公式パッケージです。
メリット
このパッケージのメリットは導入が楽な点。特に別途OpenCVのインストールが不要。
デメリット
デメリットはパッケージをインストールするたびにOpenCV一式をインストールするのでディスク容量を消費する点。
ある程度汎用的な環境向けにビルドされているのであまり最適化はされていない。新しいバージョンがリリースされてから若干のタイムラグがある点にも注意が必要です。
なお、インストールに成功したからと言って動作するとは限らず、追加で依存しているライブラリのインストールが必要な場合があります。
パッケージ名
本体のみとcontribあり、GUI関連機能(highuiモジュール)ありとなしで合計4つのパッケージがある。
以下の4つのパッケージのうちどれか1つを選んでインストールする。
本体のみ
headless
の方はGUI関連機能を無効にしたパッケージ。サーバー環境向け。
contribあり
opencv_contribリポジトリを組み合わせてビルドしたパッケージ。headless
については本体のみのパッケージと同じ。
Linux環境でcontribつきのパッケージの利用は不要な機能のための依存パッケージをインストールする必要があるので逆に面倒な可能性があります。
インストール時の注意
環境によっては追加のパッケージをインストールする必要があります。エラーメッセージから該当のファイルを含むパッケージを特定してインストールします。
macOSの場合はHomebrewでopencv
パッケージが依存しているパッケージ一式をインストールすればOpenCV本体は動くはずです。具体的にはbrew info opencv
を実行しRequired:
という行に列挙されているパッケージのうち、python本体以外をインストール*1。
参考:Raspbian Liteでビルド済みのOpenCVパッケージを使うための依存パッケージいろいろ
具体例
Python 3.7、opencv-pythonのバージョンは3.4.2.17。
作業ディレクトリを作成。contribにある二値化処理アルゴリズムを試したいのでopencv-contrib-python
をインストール。
$ mkdir work $ cd work
pyenv
などを使う場合はこのタイミングで使用するPythonのバージョンに切り替え。
venv
モジュールで仮想環境を作成して有効化。
$ python3 -m venv venv $ source venv/bin/activate
この状態でpip
コマンドはpip3
コマンドへのリンクになっています。
contribありのパッケージをインストールします。
$ pip install opencv-contrib-python-headless
大抵の場合はNumPyとmatplotlibも使うのでついでにインストール。
$ pip install numpy matplotlib
まとめ
他のインストール手段でインストールされるモジュール類とのconflictに注意。
こういう記事が意外なところで役に立つと思っていたりします。まあ気休めですけど。
おしまい。
詳解 OpenCV 3 ―コンピュータビジョンライブラリを使った画像処理・認識
- 作者: Gary Bradski,Adrian Kaehler,松田晃一,小沼千絵,永田雅人,花形理
- 出版社/メーカー: オライリージャパン
- 発売日: 2018/05/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
*1:まあ楽ができればそれが正義