2017年1月16日月曜日

An Instllation of OpenCV 3.2.0 on Windows10 using msys2

これも自分用のメモなので悪しからず。。。(^^)
でも、これで、Windows PCだけでもロボット用の画像処理ができるので良かったです。(^^)

1.目標

Windows10上で、eclipseをIDEとして使って、OpenCV開発環境をつくる事
Windowsなので、Visual StudioをIDEとして選択できますが、僕の場合は、マルチプラットフォームで開発しているので、IDEとしてeclipseを使っています。
windowsだけしか使わない人は、Visual Studioが一番です。

2.手順

2.1 環境準備

2.1.1 msys2環境構築、開発環境をpacmanで導入する

pacman懐かしい。mingw32とmingw64の2つがセットアップされる。
実際は、minigw32は空っぽです。
Windowsの環境設定のPathは、C:/msys2/mingw64/binに設定。
下の様な感じで、Windowsの中でUNIX的に使えちゃマス。
アイコンが3つできます。僕は「MYSY2 MinGW 64-bit」を使っています。
msys2をインストールしてから、開発環境としてmingw64を設定する方法を実行しました。
基本的な環境設定は、これで終わり。あとは順次必要な物をインストールします。

$ pacman -Syu
$ pacman -S base-devel
$ pacman -S msys2-devel
$ pacman -S mingw-w64-x86_64-toolchain


2.1.2 vtkをインストールする

OpenCVの画面表示の機能などがvtkに依存しているのでインストール

$pacman -S mingw-w64-x86_64-vtk

2.2 ビルド準備、ビルド

2.2.1 opencvのダウンロードと展開

opencv.orgから、windows用の圧縮ファイルをダウンロードします。
展開すると、sourcesフォルダーがあります。この中にbuildディレクトリを作成して、ここで作業をします。msys2でコマンドラインで作業をする時は、buildディレクトリに移動して作業をします。
sourcesフォルダーと同じ位置にbuildディレクトリーがあります。これと上記のディレクトリを間違わないように、、、

2.2.2 cmake

sourcesのbuildディレクトリーを、出力先として設定して使います。
OpenCVのソース展開をしてbuildディレクトリを作成してConfigureする。
図のように赤い状態になったらエラーメッセージを読んで設定を変更する。
赤い部分が無くなるまで繰り返す。赤い部分が無くなれば、Generateして終了。



2.2.2 mingw32-make

もちろん、パスはmingw64/binなのでそのモジュール。
32という数字がややっこしい。i5のPCで35分くらい


2.2.3 mingw32-make install

cmakeの時に指定したディレクトリーにインストールされる。
cmake のデフォルト値は、buildの下のinstall
ここの下のx64を、sources/x64に上書きする。
ただ、IDEを使って開発する場合は、別に上書きしてもしなくても関係ないです。その時はWindowsのパスでは、ここで作成される「x64/mingw/bin」を指定する必要があります。忘れずに設定します。


2.3 eclipseで確認

eclipseの設定は、Includeと、Libraryです。
下のソースを実行すると画像のように赤い四角が出現。
これで、めでたしめでたし\(^o^)/



#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

int main(int argc, const char* argv[])
{
  // 幅320px、高さ240pxで赤色の画像データを生成
  cv::Mat redImg(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 255));

  // 画像表示用のウィンドウを生成
  cv::namedWindow("red", cv::WINDOW_AUTOSIZE);

  // ウィンドウに画像を表示
  cv::imshow("red", redImg);

  // キー入力を待機
  cv::waitKey(0);

  // 作成したウィンドウを全て破棄
  cv::destroyAllWindows();

  return 0;
}

Windowsのpath設定(僕の場合)

c:\msys2\mingw64\bin
e:\dev\opencv\build/x64/mingw/bin

事件

vtkをインストール後に、、、
なんと、makefie等に、「C:/building/msys64」とハードコーディングされた
部分があり、これを下記のコマンドで検索し、手動で「C:/msys2」と自分の環境に変更した。
find ./ -type f -print | xargs grep 'building/msys64' > /tmp/qq.txt

qq.txtの内容を確認して、問題の記述があるファイルを特定して、秀丸エディターで読み込み、一括返還した。この対応をしながらbiludを数回繰り返し、、、
結局、丸一日。。。。

Peace!!





0 件のコメント:

コメントを投稿