プログラミング演習Ⅱ 課題4第4週 画像処理 (2) 応用
全体の流れ 画像ファイルを開き,画像データをメモリ上にロード(済) ロードした画像データに処理を加える (第3・4週) 処理後のデータを出力ファイルに書き出す (済) 画像データ用に確保したメモリを解放 (済)
マスク合成(のような処理) 出力画像 Out 入力画像1 In1 In1 In2 Out 入力画像2 In2 In2のr,g,bが全て0のときはIn1→Out それ以外のときはIn2→Out In1 In2 Out 10 30 50 10 30 50 入力画像2 In2 10 30 50 3 25 1 3 25 1 10 30 50 12 12
左右反転と180度回転 [0][xsize – 1] [0][0] → i ↓ j [ysize – 1][xsize – 1]
ビットシフトとビット反転 例 1ビット右シフト 11101100 → 01110110 ビット反転 11101100 → 00010011 1ビット右シフト 11101100 → 01110110 ビット反転 11101100 → 00010011 (RGBそれぞれを処理することを忘れないこと) ビット反転 ビットシフト
モノクローム画像化 例 R 100 G 150 B 125 平均値 125 R 125 G 125 B 125
縮小と拡大 ½に縮小 2倍に拡大 例 ½に縮小 10 30 50 12 31 50 11 31 50 11 31 45 11 32 55 10 30 50 10 30 50 12 50 31 12 50 31 2倍に拡大 10 30 50 10 30 50 12 50 31 12 50 31 11 31 45 11 31 45 11 55 32 11 55 32 11 31 45 11 31 45 11 55 32 11 55 32
モザイク化 例:2×2画素の平均値で置きかえる ※ブロックを大きくするほど粗い画像になる モザイク 10 30 50 12 31 11 45 55 32 11 31 50 モザイク ※ブロックを大きくするほど粗い画像になる
アルファブレンディング 出力画像 Out 入力画像1 In1 α 1-α 1 i 入力画像2 In2