Qtでちょっとした画像を扱いたくなったのですが、OpenCVというライブラリを使えると、かなりいろいろなことが出来そうということがわかりました。Qtで簡単に扱えそうなだなと思ったのですが、OpenCVをダウンロードすると、VC用のライブラリはリリースされているのですが、MinGW用は用意されていないようでした。Qtは、VCコンパイラも使えたと思うので、VC対応すれば、ライブラリをそのまま使えるかも知れません。特にこだわりがあるわけではないのですが、クロス環境を頭の隅で考えると、MinGWで作っておいたほうが、あとあと面倒がないような気がするので、MinGWで使えないかなと思いました。OpenCVはいろいろな環境で使えるライブラリみたいなので、何処かに、MinGW用のライブラリが用意されていないかなと思ったのですが、VC環境以外は、自分で作れということらしいので、やってみることにしました。
ツールとしては、CMakeというツールがあって、これに、ソフトのソースを食わせてプロジェクトを作って、コンパイルを実行すれば、バイナリーのライブラリを作ってくれます。OpenCVにはソースは同梱されていたので、コンパイルに挑戦することにしました。やり方は、こちらのサイトに詳しく書かれています。CMakeにコンパイラのパスを指定するので、Windowsのパスは切らなくても動かないかなと思ったのですが、CMAKE_MAKE_PROGRAMがないよとエラーが出てしまいました。直接パスを指定する方法があるような気がするのですが、結局、Windowsのパスを指定して動かしました。
ということで、無事にライブラリは完成しました。後は、Qtでライブラリのリンクをしてみます。リンクは、Qtのプロジェクトファイル(.pro)にInludeパスとライブラリのリンクを指定します。ぼくの環境では、以下で動きました。
DEPENDPATH += “「OpenCVのビルドパス」\install\include”
INCLUDEPATH += “「OpenCVのビルドパス」\install\include”
win32:LIBS += -L”「OpenCVのビルドパス」\install\x64\mingw\bin”
win32:LIBS += -lopencv_core454 -lopencv_highgui454 -lopencv_imgcodecs454
3行目で、ライブラリが格納されているフォルダーを指定して、4行目で、使いたいライブラリを指定するという感じです。Windowsでは、ライブラリファイルを直接フルパス指定しないと動かないと書かれていたところがあったのですが、ぼくの環境ではこれで動かすことが出来ました。ライブラリのフォルダーパスはLibを指定しているサイトが多く、ぼくも最初は何も考えずLibを指定して動かしていました。実際、動かすと、コンパイル自体は、エラーが出ずに通るのですが、ソフトを実行しすると、起動途中で終了してしまい、フォームが立ち上がらないという現象が起きました。最初、原因が分からず、少し悩んだのですが、OpenCVのファイルを確認したら、binフォルダーのほうにバイナリーのライブラリファイルが作られていたようなので、パスを代えてみたところフォームが立ち上がるようになりました。環境によって、微妙に、設定が異なっているみたいなので、自分の環境で確認したほうがいいかも知れません。
ということで、OpenCVが動かせるようになったのですが、いろいろ調べたら、OpenCVを使うまでもないということがわかり、今のところ、本格的にOpenCVを使ってはいないのですが、折角動かしたので、忘れないようにメモしておきます。