Transcript
Page 1: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

OpenCV(Open Source Computer Vision Library)

Lashkia Lab. Lashkia Lab.

2008.12.09 Lecture2008.12.09 Lecture

Page 2: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

目次 OpenCVOpenCV とはとは 開発環境準備開発環境準備 OpenCVOpenCV 基礎知識基礎知識 プログラムの基本の流れプログラムの基本の流れ OpenCVOpenCV の簡易の簡易 GUIGUI OpenCVOpenCV のプログラムを実行するのプログラムを実行する 画像処理画像処理 課題課題 参考資料参考資料

Page 3: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

OpenCV とは 米米 intelintel 社が提供している画像処理社が提供している画像処理 LibraryLibrary

CC 言語 (言語 ( C++C++ では無い)では無い) クロスプラットフォーム(クロスプラットフォーム( Windows, Mac, Windows, Mac,

LinuxLinux )) 機能機能

(動)画像ファイル読み込み、出力(動)画像ファイル読み込み、出力 カメラデバイス管理カメラデバイス管理 画像処理演算画像処理演算 …… etcetc

Page 4: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備 今回の開発環境今回の開発環境

Microsoft WindowsXP ProfessionalMicrosoft WindowsXP Professional Microsoft VisualStudio 2008 (VisualC++)Microsoft VisualStudio 2008 (VisualC++) Intel OpenCV 1.0 Intel OpenCV 1.0 (現在の最新は (現在の最新は 1.1 preview 11.1 preview 1 ))

Page 5: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備1.1. OpenCV OpenCV のインストールのインストール2.2. Visual Studio Visual Studio の の VC++ VC++ ディレクトリ設定ディレクトリ設定

Library File Library File の登録の登録 Include File Include File の登録の登録

3.3. Visual Studio Visual Studio プロジェクトの作成(毎回)プロジェクトの作成(毎回) プロジェクトの設定プロジェクトの設定 静的静的 LibraryLibrary およびインクルードの設定およびインクルードの設定

Page 6: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備 1.1. OpenCV OpenCV のインストールのインストール

OpenCV OpenCV の入手の入手SourceForge.net SourceForge.net から から DownloadDownload

インストールインストールインストーラーに従って インストール インストーラーに従って インストール

を行うを行う

http://sourceforge.net/projects/opencvlibrary/

Page 7: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備 2.2. VisualStudio VisualStudio の の VC++ VC++ ディレクトリ設ディレクトリ設

定定 Library File Library File の登録の登録

「ライブラリ ファイル」を選んで以下の行を追加C:\Program Files\OpenCV\lib

「ライブラリ ファイル」を選んで以下の行を追加C:\Program Files\OpenCV\lib

Page 8: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備 2.2. VisualStudio VisualStudio の の VC++ VC++ ディレクトリ設ディレクトリ設

定定 Include File Include File の登録の登録 簡易簡易 GUIGUI …etc…etc

「インクルード ファイル」を選んで以下の行を追加C:\Program Files\OpenCV\othrlibs\highguiC:\Program Files\OpenCV\cxcore\includeC:\Program Files\OpenCV\cvaux\includeC:\Program Files\OpenCV\cv\include

「インクルード ファイル」を選んで以下の行を追加C:\Program Files\OpenCV\othrlibs\highguiC:\Program Files\OpenCV\cxcore\includeC:\Program Files\OpenCV\cvaux\includeC:\Program Files\OpenCV\cv\include

Page 9: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備 3.3. Visual Studio Visual Studio プロジェクトの作成プロジェクトの作成

プロジェクトの設定プロジェクトの設定 [[ ファイルファイル ]-[]-[ 新規作成新規作成 ]-[]-[ プロジェクトプロジェクト ]] を選を選

択択プロジェクトの種類プロジェクトの種類 Win32Win32

テンプレートテンプレート Win32Win32  コンソール コンソールプロジェクト名プロジェクト名 (任意)(任意)場所場所 (任意の場所)(任意の場所)ソリューション名ソリューション名 (任意の名前)(任意の名前)ソリューションのディレクトリ作ソリューションのディレクトリ作成成

チェックを入れるチェックを入れる

ウィザードに従って、上記の通り設定を行う

Page 10: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備 3.3. Visual Studio Visual Studio プロジェクトの作成プロジェクトの作成

プロジェクトの設定(ソースコードの生成)プロジェクトの設定(ソースコードの生成) 「ソリューションエクスプローラー」の「ソー「ソリューションエクスプローラー」の「ソー

スファイル」を右クリックスファイル」を右クリック [[ 追加追加 (D)]-[(D)]-[ 新しい項目新しい項目 (W)](W)] をクリックをクリック

ファイル名ファイル名 (任意)(任意)場所場所 (任意の場所)(任意の場所)

Page 11: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

開発環境準備 3.3. Visual Studio Visual Studio プロジェクトの作成プロジェクトの作成

静的静的 LibraryLibrary およびインクルードの設定およびインクルードの設定ソースの始めに以下を記述ソースの始めに以下を記述

#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

Page 12: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

OpenCV 基礎知識 表色系:色を数値で表すときの表現方法表色系:色を数値で表すときの表現方法

RGB(BGR)RGB(BGR) Red, Blue, GreenRed, Blue, Green HSVHSV

色相色相 (Hue), (Hue), 彩度彩度 (Saturation), (Saturation), 明度明度 (Value)(Value)

OpenCVOpenCV ではそれぞれをではそれぞれを ChanelChanel という単位で扱うという単位で扱う 他に以下の表色が扱える他に以下の表色が扱える

グレースケールグレースケール アルファチャンネルアルファチャンネル

Page 13: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

OpenCV 基本プログラム OpenCVOpenCV プログラムの流れプログラムの流れ

1.1. 変数領域確保変数領域確保2.2. 画像の入力 画像の入力 (状況によって最初に行う場合もあ(状況によって最初に行う場合もあ

る)る)

3.3. 画像処理演算画像処理演算4.4. 画像の出力画像の出力5.5. 終了条件判定終了条件判定6.6. 変数領域解放変数領域解放

Page 14: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

OpenCV の簡易 GUI

画像出力用ウィンドウの生成画像出力用ウィンドウの生成 OpenCVOpenCV では簡易では簡易 GUIGUI が用意されているが用意されている ウィンドウの名前で管理ウィンドウの名前で管理

example)// ウィンドウの生成(ウィンドウ名 , オプション)cvNamedWindow(“sampleWindow”, CV_WINDOW_AUTOSIZE);

// 画像の出力(ウィンドウ名 , 出力画像)cvShowImage(“sampleWindow”, IplImage);

// ウィンドウの破棄(ウィンドウ名)cvDestoryWindow(“sampleWindow”);

Page 15: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

OpenCV の簡易 GUI

簡易簡易 GUIGUI の他の機能の他の機能 マウスイベントマウスイベント : : cvSetMouseCallbackcvSetMouseCallback

マウス操作によってマウス操作によって CallbackCallback 関数を呼ぶ関数を呼ぶ キーボードイベントキーボードイベント : : cvWaitKeycvWaitKey

キーが押されるまで待機(待ち時間指定)キーが押されるまで待機(待ち時間指定)押された場合は、キーコードが返される押された場合は、キーコードが返される

トラックバーコントロールトラックバーコントロールウィンドウにトラックバー機能を追加するウィンドウにトラックバー機能を追加する

Page 16: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

OpenCV プログラムを実行する 実行するには 実行するには DLL DLL が必要が必要

以下の以下の DLLDLL をを exeexe と同じ階層に配置と同じ階層に配置 cv100.dllcv100.dll cvaux100.dllcvaux100.dll cvcam100.dllcvcam100.dll cxts001.dllcxts001.dll higui100.dllhigui100.dll libguid40.dlllibguid40.dll ml100.dllml100.dll

Page 17: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

画像処理 セピア変換セピア変換 画像の拡大縮小画像の拡大縮小 アファイン演算による回転アファイン演算による回転 2値化2値化 マスクの作成マスクの作成 画像の合成画像の合成

Page 18: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

課題 準備準備 : 開発環境を準備: 開発環境を準備

課題1課題1 : ソースにコメントを書き込んで実際に動かしてみる: ソースにコメントを書き込んで実際に動かしてみる(全ての(全ての OpenCVOpenCV 関数に対して)関数に対して)

課題2課題2 : 画像を自由に形状変換: 画像を自由に形状変換 課題3課題3 : 画像の肌色部分だけを抽出: 画像の肌色部分だけを抽出

特別課題特別課題 2枚の画像の差異部分のみを表示2枚の画像の差異部分のみを表示

Page 19: OpenCV (Open Source Computer Vision Library) Lashkia Lab. 2008.12.09 Lecture

参考 Web

OpenCV Japanese WebSiteOpenCV Japanese WebSite Reference ManualReference Manual

http://opencv.jp/opencv/document/http://opencv.jp/opencv/document/ Sample CodeSample Code

http://opencv.jp/sample/http://opencv.jp/sample/


Recommended