今日の使用PPT

メディアプログラミング演習
―第1回(第1テーマ1日目)―
画像変換ーその1
概要:画像処理,画像変換
• デジタル画像:ピクセルの集まり
画像 : ピクセルの集まり
画像生成:ピクセルに色付け
処理の流れ
buffer
buffer
file
file
display
内部構造
プログラムの雛形
• Sample2の概要
・img_inに読み込む,表示
・全てのx,yに対して
画像img_in のピクセル(x,y)
への操作 → 画像img_out
・img_outの表示,書き出し
PImage img; void setup()
{ img=loadImage("xxx.png"); size(img.width,img.height); noLoop(); } void draw()
{ image(img,0,0); img.loadPixels(); for(int i=0;i<img.width*img.height‐1;i++) { float r=red(img.pixels[i]); float g=green(img.pixels[i]); float b=blue(img.pixels[i]); float bw=0.299*r+0.587*g+0.144*b; img.pixels[i]=color(bw,bw,bw); } img.updatePixels(); img.save("upd.png"); image(img,0,0); } wnndow
ピクセル単位の処理雛形
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) {
int pos = x + y*img_org.width;
color c = img_org.pixels[pos];
float r = red( c );
float g = green( c );
float b = blue( c );
float gray = 0.3 * r + 0.59 * g + 0.11 * b;
img_upd.pixels[pos] = color(gray,gray,gray);
}
}
グレースケール化(2-1)
サンプル画像
演習の進め方
z演習報告をダウンロード
z演習が終わる毎に画像を貼る,
z時間内の提出(終了時にロックされる)
終わるたびに提出(が無難)
来週
画像変換のほかの例
<事前学習>を必ず自習のこと