OpenCV 画像処理演習 ― 入出力編

現在、作成中…

もくじ

  1. 静止画ファイルの入出力
    1. ファイルから画像を読み込んで表示する
    2. 複数の画像を同時に表示する
    3. 複数の画像を切り替えて表示する
    4. 画像をファイルに保存する
    5. JPEGの画質を設定して保存する
    6. ファイルから読み込むときに画像変換する
  2. 動画ファイルの入出力
    1. 動画ファイルから映像を読み込んで表示する
    2. 簡単な動画再生ソフト
    3. 映像を動画ファイルに保存する
  3. パソコンに接続したカメラからの入力
    1. カメラから映像を取り込んで表示する
    2. 簡単な映像録画ソフト
  4. マウスとキーボードからの入力
    1. マウスコールバック関数の使い方
    2. ウィンドウに表示された画像にマウスで図形を描く
    3. 簡単な拡大機能つき画像表示ソフト

1. 静止画ファイルの入出力

1.1 ファイルから画像を読み込んで表示する

プログラム内で指定されている画像ファイルから画像データを読み込み、ウィンドウに貼り付けて画面に表示する。

ポイント
waitKey関数でキー入力待ちをしているとき、画像のウィンドウを選択している状態で Ctrl + C を押すと画像をクリップボードにコピーできる。また、Ctrl + S を押すとファイル保存のダイアログが表示され、画像をファイルに保存できる。
課題
別の画像ファイルを読み込み、表示せよ。
ウィンドウの名前を画像ファイルの名前と同じにせよ。

1.2 複数の画像を同時に表示する

「りんご」と「みかん」の二つの画像をそれぞれ別のウィンドウに貼り付けて画面に表示する。その後、何かキーが押されたら「りんご」のウィンドウを閉じる。

課題
表示する画像数を増やせ。

1.3 複数の画像を切り替えて表示する

一つのウィンドウに5枚の画像を順番に表示する。何かキーを押すたびに画像が切り替わる。

課題
表示する画像数を増やせ。
最後の画像を表示した後に何かキーが押されたら、最初の画像の表示に戻るようにせよ。
waitKey関数の戻り値を利用して、[→]キーが押されたら次の画像、[←]キーが押されたら前の画像を表示するようにせよ。

1.4 画像をファイルに保存する

読み込んだ画像を上下反転の画像変換をして、それをJPEGフォーマットとPNGフォーマットの二つのファイルに保存する。

ポイント
JPEGは非可逆圧縮(画像が劣化するがファイルサイズが小さい)であり、PNGは可逆圧縮(画像は劣化しないがファイルサイズは大きい)である。画像変換結果を正確に見たい場合には、PNGで保存する方が良い。
課題
Windows bitmapフォーマット(可逆圧縮)で保存せよ。ファイルサイズをJPEGとPNGの場合と比較せよ。

1.5 JPEGの画質を設定して保存する

JPEGで保存するときに画質の良さを 0~100 の値で設定できる(0が最低画質、100が最高画質、特に指定しない場合は95になる)。同じ画像で、画質を 0、10、50、95、100 の五つでそれぞれファイルに保存する。

課題
保存した画像を表示して、画質の違いを目で見て比較せよ。また、ファイルサイズの違いも比較せよ。

1.6 ファイルから読み込むときに画像変換する

imread関数では、画像を読み込むときに、カラーまたはグレイスケールに変換したり、画像サイズを縮小したりすることができる。

課題
imread関数に cv::IMREAD_REDUCED_COLOR_8 を指定して画像を読み込み、表示せよ。

2. 動画ファイルの入出力

2.1 動画ファイルから映像を読み込んで表示する

課題
映像の再生速度を速くしたり遅くしたりせよ。
最初のフレームを表示した状態で一時停止し、何かキーを押したら再生を始めるようにせよ。

2.2 簡単な動画再生ソフト

課題
Wキーを押したらそのときのフレーム画像を保存するようにせよ。
Pキーを押したら30フレーム戻るようにせよ。
Bキーを押したら逆再生するようにせよ。

2.3 映像を動画ファイルに保存する

課題
二つの動画を一つに結合してファイルに保存せよ。
動画の開始a秒からb秒までを抜き出して(トリミングして)ファイルに保存せよ。

3. パソコンに接続したカメラからの入力

3.1 カメラから映像を取り込んで表示する

3.2 簡単な映像録画ソフト

4. マウスとキーボードからの入力

4.1 マウスコールバック関数の使い方

4.2 ウィンドウに表示された画像にマウスで図形を描く

課題
現在クリックした点と直前にクリックした点とのユークリッド距離(画素数)を求めて表示せよ。
右ボタンを押したとき、画像を初期データ(図形が描かれていない状態)に戻すようにせよ。

4.3 簡単な拡大機能つき画像表示ソフト