今日の使用PPT

メディアプログラミング演習
―第1回(第1テーマ3日目)―
画像変換ーその2
プログラムの雛形
• Sample2の概要
・img_inに読み込む,表示
・全てのx,yに対して
画像img_in のピクセル(x,y)
への操作 → 画像img_out
・img_outの表示,書き出し
ピクセル単位の処理雛形
for ( int y = 0; y < img_in.height; y+=1) {
for ( int x = 0; x < img_in.width; x+=1) {
img_out.pixels[*] <- img_in.pixels[*]
}
}
実際の「処理」の記述
for ( int y = 0; y < img_in.height; y+=1) {
for ( int x = 0; x < img_in.width; x+=1) {
float gw=gray(x,y);
int pos = x + y*img_in.width;
img_out.pixels[pos] = color(gw,gw,gw);
}
}
RGB ー> グレースケール
float gray(int x, int y){
int pos = x + img_in.width*y;
color c = img.pixels[pos];
float r = red( c );
float g = green( c );
float b = blue( c );
return( 0.3 * r + 0.59 * g + 0.11 * b);
}
•
グレースケール化(2-1)
サンプル画像
4階調変換(2-2)
float gw=gray(x,y);
gw=int(gw/64)*64;
int pos = x + y*img_in.width;
img_out.pixels[pos] = color(gw,gw,gw);
4階調変換(2-2)
反転画像(2-3)
float gw=gray(x,y);
gw=255‐gw;
int pos = x + y*img_in.width;
反転画像(2-3)
ミラー反転
int pos1 = x + y*img_in.width;
int pos2 = (img_in.width‐x‐1) +
y*img_in.width;
img_out.pixels[pos2] = img_in.pixels[pos1];
ミラー反転(2-4)
セピア化(2-5)
colorMode[HSB,360,100,100]
int pos = x + y*img_in.width;
float h=hue(img_in.pixels[pos]);
float s=saturation(img_in.pixels[pos]); float b=brightness(img_in.pixels[pos]);
img_out.pixels[pos]=color(29,s,b);
セピア化(2-5)
来週
画像変換
回転変換を中心に演習