※最近のOSGEO4Wリポジトリからはcv2.pydが展開されなくなっているようです。
この方法でQGISから試用される方はご注意ください。
FOSS4G Advent Calendar 2014 2nd day
昨年のアドベントカレンダーでは、QGISのPythonコンソールからOpenCVを使う方法についての記事を書きました。
こんなの(別窓で開きます)
実はあの時、QGISのQの字もOSSのOの字も知っているようで知らない状態で、なんとか実装まで漕ぎつけた訳でありますが、色々なところで勉強や資料を読み進めるうちに、実はあまりお勧めできるような方法ではないということがわかりました。
そこで、今回はその反省も含めて正しいであろう実装の仕方について述べていきたいと思います。実装というと非常に堅苦しいですが、要はQGISのPythonからOpenCVのライブラリを使えるようにしよう、という去年とまったく同じネタなのは気にしてはいけない。
※今回の内容は、Windowsに限定したお話になるかと思います。MacOSやLinux利用者の方はまったく参考になりませんが許してください。(前回の記事もですね)
QGISはどうしてる?
さてみなさん、QGISのインストール方法はどちらを利用しているでしょうか。大抵の場合、特に理由がなければインストーラを利用してインストールされているかと思います。
ですが、今回はインストーラを利用するのではなく、OSGeo4Wのリポジトリ?からQGISをインストールします。上の図で言うところの「OSGeo4Wネットワークインストーラ」というやつですね。
最近気づいたのですが、このリポジトリかなりできるやつなんですね。FOSS4Gの大元がFOSSであることを考えれば当然のことなのかもしれませんが、いろんなOSSライブラリとの連携ができるようです。素晴らしいことです。
OSGEO4Wを利用しよう
ここはもう他にもっとお詳しい方々がいるでしょうから流れだけ書いておきます。
- OSGeo4WネットワークインストーラをDLして管理者権限で実行
- 最初にセットアップの方法を聞かれるのでエクスプレスデスクトップインストールか、アドバンスインストールを選択します。今回はアドバンスインストールにしました。
- 「次へ」連打
- 下のような画面に到達したらQGISのとこでインストールしたいバージョンを選択して、さらに「次へ」
※なんか2.6.1が出てるデスネ・・・ - 依存関係のパッケージとか権利のお話が出るけどひたすら「次へ」を連打
- インストールが終わるのを待つ。
OpenCVを実装してみる
QGISのインストールが終わりました、次はいよいよOpenCVのインストールです。
手順は非常に簡単です。さっきのパッケージ選択画面からOpenCVを選ぶだけです(下図)
ね、簡単でしょ?
あとは同じように「次へ」をひたすら連打すれば大丈夫のはず。
※記事の都合上、QGISとOpenCVのインストールは別々に処理していますが、実際は同時に行うこともできると思います。
PythonコンソールからOpenCVをインポート
無事インストールが終われば準備は整いました。前回の方法に比べて、姑息な手段を使わずにあっという間にOpenCVがインストールされています。しかも、ほぼ指示に従うだけでいいというのは素晴らしいです。インストールも終了したので、QGISを立ち上げてPythonコンソールから、ちゃんとOpenCVがインポートできるか確認してみます。
import cv2
と打ち込んでエラーがでないことを確認します。出ませんね、きっと出ていませんね。よかったよかった(棒)
まとめ
前回はOpenCVを公式サイトからDLしてきて、ビルドされているPythonライブラリをコピーする方法を取りました。さらにバージョンによってはnumpyとの依存関係でエラーが出る場合は強引にnumpyを書き換えることをしました。ただこの方法の場合、他のnumpyに依存するライブラリに影響が出る可能性があるということで、あまり推奨できる方法ではありませんでした。
今回の方法では、OpenCVの最新バージョンを使えない可能性があるものの、QGISの環境を壊す可能性がないのでOpenCVを使ってみるのであればこの方法がいいかな?
また、前回の方法に比べてシンプルになったのではないでしょうか。
おしまい。