Help us understand the problem. What is going on with this article?

QGISでOpenCVリベンジ

More than 3 years have passed since last update.

※最近の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を利用しよう

ここはもう他にもっとお詳しい方々がいるでしょうから流れだけ書いておきます。
1. OSGeo4WネットワークインストーラをDLして管理者権限で実行
2. 最初にセットアップの方法を聞かれるのでエクスプレスデスクトップインストールか、アドバンスインストールを選択します。今回はアドバンスインストールにしました。
2. 「次へ」連打
3. 下のような画面に到達したらQGISのとこでインストールしたいバージョンを選択して、さらに「次へ」
 ※なんか2.6.1が出てるデスネ・・・
4. 依存関係のパッケージとか権利のお話が出るけどひたすら「次へ」を連打
5. インストールが終わるのを待つ。

OpenCVを実装してみる

QGISのインストールが終わりました、次はいよいよOpenCVのインストールです。
手順は非常に簡単です。さっきのパッケージ選択画面からOpenCVを選ぶだけです(下図)
ね、簡単でしょ?
あとは同じように「次へ」をひたすら連打すれば大丈夫のはず。

※記事の都合上、QGISとOpenCVのインストールは別々に処理していますが、実際は同時に行うこともできると思います。

PythonコンソールからOpenCVをインポート

無事インストールが終われば準備は整いました。前回の方法に比べて、姑息な手段を使わずにあっという間にOpenCVがインストールされています。しかも、ほぼ指示に従うだけでいいというのは素晴らしいです。インストールも終了したので、QGISを立ち上げてPythonコンソールから、ちゃんとOpenCVがインポートできるか確認してみます。

import cv2

と打ち込んでエラーがでないことを確認します。出ませんね、きっと出ていませんね。よかったよかった(棒)

まとめ

前回はOpenCVを公式サイトからDLしてきて、ビルドされているPythonライブラリをコピーする方法を取りました。さらにバージョンによってはnumpyとの依存関係でエラーが出る場合は強引にnumpyを書き換えることをしました。ただこの方法の場合、他のnumpyに依存するライブラリに影響が出る可能性があるということで、あまり推奨できる方法ではありませんでした。
今回の方法では、OpenCVの最新バージョンを使えない可能性があるものの、QGISの環境を壊す可能性がないのでOpenCVを使ってみるのであればこの方法がいいかな?
また、前回の方法に比べてシンプルになったのではないでしょうか。

おしまい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした