index

第3回の趣旨

OPenCVの機能の複合的利用

GUIに挑戦

サンプルの実行

サンプルプログラムのダウンロード

  1. ここからダウンロード。
  2. ダウンロードしたら適当な場所で解凍しましょう。

サンプルプログラムを動かしてみよう

  1. 第1回と同様に、3つのサンプルプログラム(trackbar、mouse、change_pix)を動かしてみよう。
  2. change_pixでは、コマンドライン引数で画像を読み込みます。
    $./main ../images/00.bmp
  3. change_pixでは、imagesフォルダ内の別の画像も読み込んでみましょう。

解説

cvCreateTrackbar?関数

トラックバーを作成して、指定されたウィンドウに追加する関数です。

createTrackbar("Trackbar", "Window", $value, 100);

では、ウィンドウ"Window"にトラックバー"Trackbar"(最大値100)を生成し、トラックバーの値が常にvalueに反映されます。

while文の無限ループの中で,valueの値を文字列 str として、

putText(dst_img, str, Point(10, 50), FONT_HERSHEY_DUPLEX, 1.0, Scalar(0, 0, 0));

関数によりdst_img上に描画しています。
ESCキーを押すとwhile文をbreakし、プログラムを終了します。

setMouseCallback?関数

マウスイベントに対するコールバックを指定する関数です。

setMouseCallback("Window", on_mouse, (void *)&src_img);

では、ウィンドウ"Window"内でマウスイベント(クリックなど)が発生するたびに、
on_mouse関数が呼び出されます。 on_mouse関数

void on_mouse(int event, int x, int y, int flags, void *param)

は、マウスがどのような状態なのかを引数にしており、この値はsetMouseCallback?が設定します。

int x, y

は画像座標系におけるマウスポインタの座標。

int event

はイベントの内容。例えば、マウスが移動しただと、eventの値がCV_EVENT_MOUSEMOVEになります。
他にどのようなイベントがあるか、調べてみてください。

trackbar.cppのサンプルプログラムと同様に、while文の無限ループの中で、マウスイベントの状況を文字列として、dst_img上に描画しています。

練習2:画素値操作機能のGUI化

  1. 画像を読み込む。
  2. トラックバーでR(赤)チャンネルの値の倍率を指定する。
  3. 加工した画像を表示する。

課題2:人物写真を加工しよう!

注意事項

提出方法

評価方法

参考になるサイト

質問がある場合


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