Document

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