画像処理プロ 画 ログラムの雛 雛形(その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)に
© Copyright 2024 ExpyDoc