4週目:画像処理
演習課題
以下の仕様を満たすプログラムを作成せよ.
- コマンドライン引数:
- modeが 0, 1 のとき mode input output の3つ
- modeが 2 のとき mode input1 input2 output の4つ
- mode で以下のように画像処理の種類を指定できるようにせよ.
- mode が 0 の場合: 90度回転
- mode が 1 の場合: 下位ビットマスク(≒量子化)(input の各画素の下位”7”ビットを0でマスク (6ではないので注意))
- mode が 2 の場合: マスク合成(input1の上に,input2の黒画素の以外の箇所を上書きしてoutputに出力)
- 上記以外 : 画像の複製 (input1 の内容を output へコピーする)

図.modeが2の場合の処理
オプション課題
- 余力があれば,他の画像処理も選べるようにプログラムを拡張せよ.
- 画像処理として,例えば,以下のような処理が考えられる.
- 左右反転
- 180度回転
- 各画素を n ビット右シフトまたは左シフト
- 各画素をビット反転
- モノクローム画像化(RGBの値をRGBの平均値に置き換えるなど)
- 拡大・縮小
- モザイク化(8×8画素のブロックごとに,ブロック内の画素値の平均値で置き換えるなど)
- ぼかし(参考ページ)
- 輪郭強調(参考ページ)
- アルファブレンディング
- 上記以外の処理を自分で考案したり,調べたりして,自由に実装してよい.
解説
プログラムの設計指針〜画像処理〜
説明用スライド (授業用) (印刷用)
サンプル画像