*index [#qa253e0e] #contents *第1回の趣旨 [#sa340a9e] **Linux [#a6867452] -ディレクトリの変更,コンパイルなどLinuxの操作に慣れよう. **OPenCVサンプルプログラム[#ba4e5717] -サンプルプログラムを動かしてみよう. -サンプルプログラムを改造してみよう. *練習 [#hfbd9d25] **サンプルプログラムのダウンロード [#s79620c1] +[[ここからダウンロード.>http://smg.ams.eng.osaka-u.ac.jp/tanaka/AdvancedPrograming2012/samples.zip]] +ダウンロードしたら適当な場所で解凍しましょう. **まずは,サンプルプログラムを動かしてみよう [#z8cdd1cd] +samples/open_saveのディレクトリに移動し,以下のコマンドを実行し,コンパイルします. $make +コンパイルが通ったら,以下のコマンドを実行します. $./main +何かキーを押すとopen_saveのフォルダにJPG形式で読み込んだ画像を保存し,終了します(save_img.jpg). +サンプルプログラムは全部で5種類あります(readme参照).他のサンプルプログラムも問題無く動くことを確認して下さい. +他のサンプルプログラムでは,コマンドライン引数で読み込む画像を指定します. $./main ../00.bmp +サンプルで読み込む画像はsamplesフォルダ内のimagesにあります.別の画像を読み込んでみましょう. **サンプルを改造してみよう [#f15b9bba] +scanfを使って任意の画像を読み込めるようにしてみよう. +同様に,scanfを使って画像に処理を加えるパラメータ(スケール,切り取り位置,回転角度など)を入力できるようにしてみよう. *課題:画像処理ソフトを作ろう(基本編)[#fafc23e5] **下記の機能をコマンドで実行できる画像処理ソフトを作成して下さい [#q9c7dd3f] コマンドの例 (読み込み)read ../images/00.bmp (リサイズ)resize 0.5 +画像ファイルの読み込み・保存 --コマンドライン引数ではなく,ソフトの起動後でも任意のファイルを指定して読み込めるようにせよ. --下記の画像処理を施した画像を,任意のファイル名で保存できるようにせよ. +リサイズ --任意のサイズ,任意のスケールを指定してリサイズできるようにせよ. +切り取り --任意の位置とサイズを指定して画像の一部を切り取れるようにせよ. +反転 --任意の軸(水平,垂直,両方)で反転できるようにせよ. +回転 --任意の位置(x,y座標),回転角度,スケールを指定して回転できるようにせよ. +その他 --画像処理に関する機能を自分で実装しても良い. **注意事項 [#m87b9752] -指定したファイルが存在しない,パラメータが足りない,異常なパラメータが指定されたなど,処理が実行できない場合には,適切なエラーメッセージを表示せよ. -Webページを参考にした場合や,誰かに教えてもらった場合には,ソースコードの該当箇所にコメントにてURLや名前・学生番号を記述せよ(下記のリファレンスマニュアルは不要). **提出方法 [#f58dd4aa] -下記の提出物を第3回(4/24)の講義開始時に回収する. -提出物一式を入れるフォルダの名前は学生番号とする. -提出物 --ソースコード --コンパイルに使用するMakefile --その他,コンパイル・実行に必要なファイル **評価方法 [#n398cb0b] -仕様を満たしているか. -ソースコードの可読性の高さ. --機能ごとに関数を分け,分かりやすい関数名をつけているか(機能ごとにソースを分けて分割コンパイルをしても良い). --分かりやすい変数名をつけているか. --分かりやすいコメントを記述しているか. -機能に対応した分かりやすいコマンドであるか. -無駄な処理を行っていないか. -工夫に応じて加点する. *参考になるサイト [#r68ab4cb] -OpenCVライブラリに関する日本語リファレンスマニュアル~ [[OpenCV v1.0.0リファレンスマニュアル>http://opencv.jp/opencv-1.0.0/document/]]~ -自宅のPCで課題をやりたい場合~ [[Vine Linux on VMware Player]]~ *質問がある場合 [#c4e4f38c] -中西研 田中までメールをください.~ なお,件名は「AP2013:課題1」としてください.~ tanaka_AT_ams.eng.osaka-u.ac.jp (_AT_は@に変えてください)