index †
第1回の趣旨 †
Linux †
- ディレクトリの変更,コンパイルなどLinuxの操作に慣れよう.
OPenCVサンプルプログラム †
- サンプルプログラムを動かしてみよう.
- サンプルプログラムを改造してみよう.
サンプルの実行 †
サンプルプログラムのダウンロード †
- ここからダウンロード.
- ダウンロードしたら適当な場所で解凍しましょう.
まずは,サンプルプログラムを動かしてみよう †
- samples/open_saveのディレクトリに移動し,以下のコマンドを実行し,コンパイルします.
$make
- コンパイルが通ったら,以下のコマンドを実行します.
$./main
- 何かキーを押すとopen_saveのフォルダにJPG形式で読み込んだ画像を保存し,終了します(save_img.jpg).
- サンプルプログラムは全部で5種類あります(readme参照).他のサンプルプログラムも問題無く動くことを確認して下さい.
- 他のサンプルプログラムでは,コマンドライン引数で読み込む処理になっています.コマンドライン引数で画像を指定する場合は以下のコマンドを実行します.
$./main ../images/00.bmp
- サンプルで読み込む画像はsamplesフォルダ内のimagesにあります.別の画像を読み込んでみましょう.
解説 †
Makeファイル †
コマンドライン引数 †
練習:サンプルを改造してみよう †
- scanfを使って任意の画像を読み込めるようにしてみよう.
- 同様に,scanfを使って画像に処理を加えるパラメータ(スケール,切り取り位置,回転角度など)を入力できるようにしてみよう.
課題:画像処理ソフトを作ろう(基本編) †
下記の機能をコマンドで実行できる画像処理ソフトを作成してください †
コマンドの例
(読み込み)read ../images/00.bmp
(リサイズ)resize 0.5
- 画像ファイルの読み込み・保存
- コマンドライン引数ではなく,ソフトの起動後でも任意のファイルを指定して読み込めるようにしてください.
- 下記の画像処理を施した画像を,任意のファイル名で保存できるようにしてください.
- リサイズ
- 任意のサイズ,任意のスケールを指定してリサイズできるようにしてください.
- 切り取り
- 任意の位置とサイズを指定して画像の一部を切り取れるようにしてください.
- 反転
- 任意の軸(水平,垂直,両方)で反転できるようにしてください.
- 回転
- 任意の位置(x,y座標),回転角度,スケールを指定して回転できるようにしてください.
- その他
注意事項 †
- 指定したファイルが存在しない,パラメータが足りない,異常なパラメータが指定されたなど,処理が実行できない場合には,適切なエラーメッセージを表示してください.
- 適宜コメントを入れたり,関数化したりして,他人にもわかりやすいプログラムになるように心がけてください.全くコメントのないものは減点します.
- 他人のプログラムを写したことが判明した場合は,両者とも0点になります.
- 課題内容に対応していないプログラムには点をつけられません.
提出方法 †
- 第3回(4/26)の講義中に課題プログラムのコンパイルと実行が正しくできるかを確認します.
- 下記の提出物を第3回の講義日(4/26)の24:00までにCLEで提出してください.
- 提出物一式を入れるフォルダの名前は学生番号(IDではない!)とし,zipファイルに圧縮してください.
- 提出物
- ソースコード
- コンパイルに使用するMakefile
- 作成したソフトの仕様や実行方法等を記載したReadme.txt
- その他,コンパイル・実行に必要なファイル
評価方法 †
- 仕様を満たしているか.
- ソースコードの可読性の高さ.
- 機能ごとに関数を分け,分かりやすい関数名をつけているか(機能ごとにソースを分けて分割コンパイルをしても良い).
- 分かりやすい変数名をつけているか.
- 分かりやすいコメントを記述しているか.
- 機能に対応した分かりやすいコマンドであるか.
- 無駄な処理を行っていないか.
- 工夫に応じて加点します.
参考になるサイト †
質問がある場合 †
- 中西研 大西までメールをください.
なお,件名は「AP2017:課題1」としてください.
yuya.onishi_AT_ams.eng.osaka-u.ac.jp (_AT_は@に変えてください)