でも、これで、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\bine:\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 件のコメント:
コメントを投稿