// sam PIma void { im im siz col no } void { im im for { f { } } im im im

画像処理プロ
画
ログラムの雛
雛形(その2)
mple2.txt
// sam
PIma
age img_in, img_out;
<-入
入力画像領域(img_in)と出
出力画像領域
域(img_out)
void setup()
{
mg_in = load
dImage("sam
mple2-1.jpg"");
im
<- 画像のファイ
画
イルからの入
入力
im
mg_out = creeateImage( img_in.widt
i
th, img_in.h
height, RGB
B ); <-出
出力領域確保
sizze(img_in.w
width*2, img
g_in.height));
<- ウインドウの表示
collorMode(RG
GB,255,255,255)
ードを RGB 系
系に
<- カラーモー
noLoop();
}
void draw()
{
mage(img_in
n,0,0);
im
<- 入力画像の表示
im
mg_in.loadPiixels();
<- pixels[]に
forr ( int y = 0; y < img_in
n.height; y+=
=1)
すべて
ての y(縦方向
向)に対して
て
<-
<
{
ffor ( int x = 0; x < img
g_in.width; x+=1)
<-各々の
<
y において, すべての x の
{
img_out.p
pixels[
* ] <-
mg_in.pixels[
im
*
]
行う.
この処理を行
}
この部分に処
処
}
im
mg_out.upda
atePixels();
im
mage(img_ou
ut,img_in.width,0);
im
mg_out.save(("out.jpg");
}
理
理内容を記述
述
<-pixe
els から ima
age へ
<-処理結
結果の表示
<-結果
果画像のファ
ァイル出力
する
メディアプログラミング演習―第1回(第1テーマ3日目)―
復習(作り直し)
カラー画像を白黒写真(グレースケール画像)に変換プログラム
プロトタイプ(sample2.txt)の利用,グレースケールの関数化(この関数をプログラ
ムの最後に)
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); } 処理内容の部分:256階調のグレースケールに変換
float gw=gray(x,y); int pos = x + y*img_in.width; img_out.pixels[pos] = color(gw,gw,gw); 演習2-1:グレースケール 配布した画像(sample2‐1.jpg)を,前述(「復習」)の方法で処理する. 演習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); とし,画像(samplr2.jpg)で実行しなさい.2行目の働きを理解しなさい. 「64」では,255 階調が 4 階調となる. 演習2-3:反転画像
処理内容の部分を float gw=gray(x,y); gw=255‐gw; int pos = x + y*img_in.width; img_out.pixels[pos] = color(gw,gw,gw); とし,画像(sample2.jpg)で実行しなさい.2行目の働きを理解しなさい. 演習2-4:ミラー変換 処理内容の部分を 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]; とし,画像(samplr2.jpg)で実行しなさい.2行目の働きを理解しなさい. 演習2-5:セピア変換 画像を,HSB 系表現を用いて,セピア色に変換する. colorMode[HSB,360,100,100]; setup のカラーモードを変更 処理内容の部分: 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);
<-色相をセピア(29,60,42)に