*index [#qa253e0e]
#contents

*第1回の趣旨 [#sa340a9e]
**Linux [#a6867452]
-ディレクトリの変更,コンパイルなどLinuxの操作に慣れよう.
**OPenCVサンプルプログラム[#ba4e5717]
-サンプルプログラムを動かしてみよう.
-サンプルプログラムを改造してみよう.

*練習 [#hfbd9d25]
**サンプルプログラムのダウンロード [#s79620c1]
+[[ここからダウンロード.>http://reo.heteml.jp/ap/sample.zip]]
+ダウンロードしたら適当な場所で解凍しましょう.

**まずは,サンプルプログラムを動かしてみよう [#z8cdd1cd]
+samples/open_saveのディレクトリに移動し,以下のコマンドを実行し,コンパイルします.
 $make
+コンパイルが通ったら,以下のコマンドを実行します.
 $./main
+何かキーを押すとopen_saveのフォルダにJPG形式で読み込んだ画像を保存し,終了します(save_img.jpg).
+サンプルは全部で5種類あります.他のサンプルも問題無く動くことを確認して下さい.
+他のサンプルでは,コマンドライン引数で読み込む画像を指定します.
 $./main ../00.bmp
+サンプルで読み込む画像はsamplesフォルダ内のimagesにあります.別の画像を読み込んでみましょう.

**サンプルを改造してみよう [#f15b9bba]
+画像に処理を加えるパラメータ(拡大・縮小率,切り取り位置,回転角度など)を変更できるように改造してみよう.

*課題:画像処理ソフトを作ろう(基本編)[#fafc23e5]
**下記の機能を備えた画像処理ソフトを作成して下さい [#q9c7dd3f]
+画像ファイルの読み込み・保存
--コマンドライン引数ではなく,ソフトの起動後でも任意のファイルを指定して読み込めるようにせよ.
--下記の画像処理を施した画像を,任意のファイル名で保存できるようにせよ.
+リサイズ
--任意のサイズ,任意の拡大・縮小率を指定してリサイズできるようにせよ.
+切り取り
--任意の位置とサイズを指定して画像の一部を切り取れるようにせよ.
+反転
--任意の
+元画像と検出器のファイル名をコマンドライン引数で指定
--検出器は&ref(haarcascade_frontalface_default.zip);をダウンロードして使用せよ.
--テスト用の元画像は&ref(TestSample.zip);を使用せよ(自分で用意した画像で試してみるのも良い).
+指定された元画像のロード
--_00_img_openを参考にせよ.
+元画像のグレースケール化および平滑化
--_04_grayおよび03_smoothを参考にせよ.
+検出器のロード
--カスケードの作成
 cascade = (CvHaarClassifierCascade*)cvLoad("検出器のファイル名");
+顔検出
--メモリの確保
 storage = cvCreateMemStorage(0);
--顔領域候補の検出
 CvSeq* faces //顔領域候補のリスト
 faces = cvHaarDetectObjects(image, cascade, storage, scale_factor, min_neighbors, flags, min_size);
--パラメータを変化させ,検出結果への影響を確認せよ.
 scale_factor, min_neighbors, flags, min_size
+顔領域に矩形を描画
--for文を使って元画像の顔領域候補に矩形を描画
 faces->total //顔領域の候補数
 CvRect face_rect 顔領域候補の座標・サイズを格納する構造体
 face_rect = *(CvRect*)cvGetSeqElem(faces, i); //i番目の顔領域候補を構造体に格納
 face_rect.x, face_rect.y //左上の座標
 face_rect.width, face_rect.height //領域のサイズ
 cvRectangle(image, pt1, pt2, color, thickness, line_type, shift); //矩形の描画
+検出結果の表示,何かキーが押されたら終了
--_00_img_openを参考にせよ.

**注意事項 [#m87b9752]
-コマンドライン引数が足りない(または多い)場合,適切なエラーメッセージを表示せよ.
-元画像,検出器がロードできなかった場合,適切なエラーメッセージを表示せよ.
-顔領域を示す矩形は元画像に描画し表示せよ(グレースケール化・平滑化した画像ではない).
-Webページを参考にした場合や,誰かに教えてもらった場合には,ソースコードの該当箇所にコメントにてURLや名前・学生番号を記述せよ(下記のリファレンスマニュアルは不要).

**提出方法 [#f58dd4aa]
-下記の提出物を第3回(4/27)の講義開始時に回収する.
-提出物一式を入れるフォルダの名前は学生番号とする.
-提出物
--ソースコード
--コンパイルに使用するMakefile
--その他,コンパイル・実行に必要なファイル

**評価方法 [#n398cb0b]
-ソースコードの可読性の高さ
--分かりやすい変数名を使用しているか.
--分かりやすいコメントを記述しているか.
-仕様を満たしているか.
-無駄な処理を行っていないか.
-工夫に応じて加点する.

*参考になるサイト [#r68ab4cb]
-やさしい解説サイト~
[[OpenCVで学ぶ画像認識>http://gihyo.jp/dev/feature/01/opencv/0001]]~
-OpenCVライブラリに関する日本語リファレンスマニュアル~
[[OpenCV v1.0.0リファレンスマニュアル>http://opencv.jp/opencv-1.0.0/document/]]~
-自宅のPCで課題をやりたい場合~
[[Vine Linux on VMware Player]]~

*質問がある場合 [#c4e4f38c]
-中西研 田中までメールをください.~
なお,件名は「AP2011:課題1」としてください.~
tanaka_AT_ams.eng.osaka-u.ac.jp (_AT_は@に変えてください)


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS