190 likes | 517 Views
OpenCV (Open Source Computer Vision Library). Lashkia Lab. 2008.12.09 Lecture. 目次. OpenCV とは 開発環境準備 OpenCV 基礎知識 プログラムの基本の流れ OpenCV の簡易 GUI OpenCV のプログラムを実行する 画像処理 課題 参考資料. OpenCV とは. 米 intel 社が提供している画像処理 Library C 言語 ( C++ では無い) クロスプラットフォーム( Windows, Mac, Linux ) 機能
E N D
OpenCV(Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture
目次 • OpenCVとは • 開発環境準備 • OpenCV基礎知識 • プログラムの基本の流れ • OpenCVの簡易GUI • OpenCVのプログラムを実行する • 画像処理 • 課題 • 参考資料
OpenCVとは • 米intel社が提供している画像処理Library • C言語 (C++では無い) • クロスプラットフォーム(Windows, Mac, Linux) • 機能 • (動)画像ファイル読み込み、出力 • カメラデバイス管理 • 画像処理演算 …etc
開発環境準備 • 今回の開発環境 • Microsoft WindowsXP Professional • Microsoft VisualStudio 2008 (VisualC++) • Intel OpenCV 1.0 (現在の最新は 1.1 preview 1)
開発環境準備 • OpenCV のインストール • Visual Studio の VC++ ディレクトリ設定 • Library File の登録 • Include File の登録 • Visual Studio プロジェクトの作成(毎回) • プロジェクトの設定 • 静的Libraryおよびインクルードの設定
開発環境準備 • 1.OpenCV のインストール • OpenCV の入手 • SourceForge.net から Download • インストール • インストーラーに従って インストール を行う http://sourceforge.net/projects/opencvlibrary/
開発環境準備 • 2.VisualStudio の VC++ ディレクトリ設定 • Library File の登録 「ライブラリ ファイル」を選んで以下の行を追加 C:\Program Files\OpenCV\lib
開発環境準備 • 2.VisualStudio の VC++ ディレクトリ設定 • Include File の登録 • 簡易GUI …etc 「インクルード ファイル」を選んで以下の行を追加 C:\Program Files\OpenCV\othrlibs\highgui C:\Program Files\OpenCV\cxcore\include C:\Program Files\OpenCV\cvaux\include C:\Program Files\OpenCV\cv\include
開発環境準備 • 3.Visual Studio プロジェクトの作成 • プロジェクトの設定 • [ファイル]-[新規作成]-[プロジェクト]を選択 ウィザードに従って、上記の通り設定を行う
開発環境準備 • 3.Visual Studio プロジェクトの作成 • プロジェクトの設定(ソースコードの生成) • 「ソリューションエクスプローラー」の「ソースファイル」を右クリック • [追加(D)]-[新しい項目(W)]をクリック
#include <cxcore.h> #include <highgui.h> #include <cv.h> #pragma comment(lib, “cvaux.lib”) #pragma comment(lib, “cxcore.lib”) #pragma comment(lib, “highgui.lib”) #pragma comment(lib, “cv.lib”) インクルード 静的Library 開発環境準備 • 3.Visual Studio プロジェクトの作成 • 静的Libraryおよびインクルードの設定 • ソースの始めに以下を記述
OpenCV基礎知識 • 表色系:色を数値で表すときの表現方法 • RGB(BGR) Red, Blue, Green • HSV 色相(Hue), 彩度(Saturation), 明度(Value) OpenCVではそれぞれをChanelという単位で扱う • 他に以下の表色が扱える • グレースケール • アルファチャンネル
OpenCV基本プログラム • OpenCVプログラムの流れ • 変数領域確保 • 画像の入力 (状況によって最初に行う場合もある) • 画像処理演算 • 画像の出力 • 終了条件判定 • 変数領域解放
OpenCVの簡易GUI • 画像出力用ウィンドウの生成 • OpenCVでは簡易GUIが用意されている • ウィンドウの名前で管理 example) // ウィンドウの生成(ウィンドウ名, オプション) cvNamedWindow(“sampleWindow”, CV_WINDOW_AUTOSIZE); // 画像の出力(ウィンドウ名, 出力画像) cvShowImage(“sampleWindow”, IplImage); // ウィンドウの破棄(ウィンドウ名) cvDestoryWindow(“sampleWindow”);
OpenCVの簡易GUI • 簡易GUIの他の機能 • マウスイベント : cvSetMouseCallback • マウス操作によってCallback関数を呼ぶ • キーボードイベント : cvWaitKey • キーが押されるまで待機(待ち時間指定) • 押された場合は、キーコードが返される • トラックバーコントロール • ウィンドウにトラックバー機能を追加する
OpenCVプログラムを実行する • 実行するには DLL が必要 • 以下のDLLをexeと同じ階層に配置 • cv100.dll • cvaux100.dll • cvcam100.dll • cxts001.dll • higui100.dll • libguid40.dll • ml100.dll
画像処理 • セピア変換 • 画像の拡大縮小 • アファイン演算による回転 • 2値化 • マスクの作成 • 画像の合成
課題 • 準備 : 開発環境を準備 • 課題1 : ソースにコメントを書き込んで実際に動かしてみる (全てのOpenCV関数に対して) • 課題2 : 画像を自由に形状変換 • 課題3 : 画像の肌色部分だけを抽出 • 特別課題 • 2枚の画像の差異部分のみを表示
参考Web • OpenCV Japanese WebSite • Reference Manual • http://opencv.jp/opencv/document/ • Sample Code • http://opencv.jp/sample/