2010 年マルチメディア論 画像処理演習(2)

19
2010 年年年年年年年年年 年年年年年年(2) http://www.nier.go.jp/saka/rika /pic2009.txt pic1.txt pic8.txt

Upload: arista

Post on 11-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

2010 年マルチメディア論 画像処理演習(2). http://www.nier.go.jp/saka/rika/pic2009.txt ( pic1.txt ~ pic8.txt ). 1.プログラム環境の準備. (1) 検索エンジンで「 Tiny Basic 」をキーワードにして、「 Tiny Basic for Windows 」のトップページを開く。 http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/ (2)「 Tiny Basic for Windows Ver. 1.21 」をダウンロードする。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 2010 年マルチメディア論 画像処理演習(2)

2010 年マルチメディア論画像処理演習(2)

http://www.nier.go.jp/saka/rika/pic2009.txt( pic1.txt ~ pic8.txt )

Page 2: 2010 年マルチメディア論 画像処理演習(2)

1.プログラム環境の準備

(1) 検索エンジンで「 Tiny Basic 」をキーワードにして、「 Tiny Basic for Windows 」のトップページを開く。

   http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/

(2)「 Tiny Basic for Windows Ver. 1.21 」をダウンロードする。  → 左の「ダウンロード」をクリックし、「最新版  Ver. 1.21 」を選択

する。  → 保存したファイル(セットアップファイル)をクリックする。

(3) TBasic  のフォルダを開いて、 Tbasic.exe  を実行(クリック)する。

(4)プログラム-新規作成 で、以下のプログラムを入力して、実行してみる。

(5) Tiny Basic for Windows のWEBページがあるので参考にしてください。

Page 3: 2010 年マルチメディア論 画像処理演習(2)

2.画像とプログラム

• 画像を z: のドライブにダウンロードする。

• http://www.nier.go.jp/saka/rika/koizumi.jpg• http://www.nier.go.jp/saka/rika/koizumi3.jpg

• 「プログラム」-「新規作成」の画面に以下のプログラムをコピーする。

• http://www.nier.go.jp/saka/rika/pic1.txt• 「即実行」をクリックする。

Page 4: 2010 年マルチメディア論 画像処理演習(2)

3.座標系を知る

(0,0) (300,0) (600,0)

(600,400)(300,400)(0,400)

Page 5: 2010 年マルチメディア論 画像処理演習(2)

4. 1   LINEと色番号

• 直線を描く方法: line ( 始点 )-( 終点 ), 色番号• 【例】 line (150,0)-(150,400),14

• グラフィックで使える色は 16 色で,色番号0 から 15 まで指定できます。 色は次のように割り当てられています。

Page 6: 2010 年マルチメディア論 画像処理演習(2)

4. 2   LINEで長方形を描く

• 長方形を描く方法: line ( 始点 )-( 終点 ), 色番号 ,bf• 【例】 line (300,0)-(600,400),14,bf  ←塗りつぶす

• 【例】 line (300,0)-(600,400),14,b   ←塗りつぶさない 

• 長方形の色は 16 色で,色番号 0 から 15 まで指定できます。 色は次のように割り当てられています。

Page 7: 2010 年マルチメディア論 画像処理演習(2)

【演習1】 LINE の演習

(0,0) (300,0) (600,0)

(600,400)(300,400)(0,400)

ここを黒く塗る

簡単な漢字をLINE で書く

Page 8: 2010 年マルチメディア論 画像処理演習(2)

5.画素(ピクセル)

• http://www.nier.go.jp/saka/rika/pic2.txt• (x,y) の色を読み取る方法iro$ =GetRGBPixel(x,y)※GetRGBPixel の y 座標(次頁参照)に注意するこ

と。

• (x+300,400-y) に色を書き込む方法forecolor=iro$pset(x+300,400-y)

Page 9: 2010 年マルチメディア論 画像処理演習(2)

6. GetRGBPixel(x,y) のy座標

(0,0) (300,0) (600,0)

(600,400)(300,400)(0,400)

y の値

x の値 pset(x+300,400-y)

Page 10: 2010 年マルチメディア論 画像処理演習(2)

【演習2】 画像を斜め傾ける

(0,0) (300,0) (600,0)

(600,400)(300,400)(0,400)

Page 11: 2010 年マルチメディア論 画像処理演習(2)

7. 1  RGBを16進数で表示

• http://www.nier.go.jp/saka/rika/pic3.txt

• RGBを16進数で表示zr$="&h"+mid$(iro$,2,2)zg$="&h"+mid$(iro$,4,2)zb$="&h"+mid$(iro$,6,2)• iro="#FF005A" のとき、mid$(iro$,2,2) は、 FFmid$(iro$,4,2) は、 00mid$(iro$,6,2) は、 5A

Page 12: 2010 年マルチメディア論 画像処理演習(2)

7. 2  RGBを10進数で表示

• http://www.nier.go.jp/saka/rika/pic3.txt

• iro="#FF005A" のとき、 mid$()によって、zr$="&hFF" になる。zg$="&h00" になる。zb$="&h5A" になる。• RGBを10進数で表示nr=val(zr$)  →  nr=16x15+15=255ng=val(zg$)  →  ng=16x 0+ 0= 0 nb=val(zb$)  →  nb=16x 5+10= 90

Page 13: 2010 年マルチメディア論 画像処理演習(2)

8. 1 画像(カラー)を赤色のみに

• http://www.nier.go.jp/saka/rika/pic4.txt

• iro="#xx????" のとき、 mid$()によって、 zr$="#xx0000" にする。

• zr$="&h"+mid$(iro$,2,2) または、  zr$=mid$(iro$,1,3)

forecolor=zr$+"0000" pset(x+300,0)

Page 14: 2010 年マルチメディア論 画像処理演習(2)

8. 2 画像(カラー)をモノクロに

• http://www.nier.go.jp/saka/rika/pic5.txt

• nrと ngと nbの平均を求め、整数化する。nx=int((nr+ng+nb)/3) • nxを16進数にする。zx$=right$("0"+hex$(nx),2)• RGBをすべて同じ zx$ にして、その色をpset の座標に置く。

forecolor="#"+zx$+zx$+zx$pset(x+300,400-y)

Page 15: 2010 年マルチメディア論 画像処理演習(2)

【演習3】 画像を2値化する

• 2値化とは、白か黒にする。白と黒の中間(灰色)は使わない。

• 前頁の nxは、 nrと ngと nbの平均なので、 0≦ nx≦255 となる。 • 2値化の場合、 nxを0( nx< 128のとき) または 255( 128≦nx≦255のとき)のどちらかにする。

• BASICの条件分岐 If nx<128 Then nx=0 Else nx=255

Page 16: 2010 年マルチメディア論 画像処理演習(2)

9.画像をぼかす

• http://www.nier.go.jp/saka/rika/pic7.txt

• n5のまわりの画素( n1~ n9)の平均を nx とする。• nx=int((n1+n2+n3+n4+n5+n6+n7+n8+n9)/9) zx$=right$("0"+hex$(nx),2) forecolor="#"+zx$+zx$+zx$

n1: (x-1,y-1)

n2: (x,y-1) n3: (x+1,y-1)

n4: (x-1,y) n5:(x,y)

n6: (x+1,y)

n7: (x-1,y+1)

n8: (x,y+1) n9:(x+1,y+1)

Page 17: 2010 年マルチメディア論 画像処理演習(2)

【演習4】 カラー画像をぼかす

• n5のまわりの画素( n1~ n9)について、RGBそれぞれの平均を求める。

n1: (x-1,y-1)

n2: (x,y-1) n3: (x+1,y-1)

n4: (x-1,y) n5:(x,y)

n6: (x+1,y)

n7: (x-1,y+1)

n8: (x,y+1) n9:(x+1,y+1)

Page 18: 2010 年マルチメディア論 画像処理演習(2)

10.画像のエッジを抽出する

• http://www.nier.go.jp/saka/rika/pic8.txt

• N1(上の画素)と n4(下の画素)の差を nx とする。• nx=int((n1-n4)/4) zx$=right$("0"+hex$(nx),2) forecolor="#"+zx$+zx$+zx$

n1: (x-1,y-1)

n2: (x,y-1)

n3: (x+1,y-1)

n4: (x-1,y)

n5: (x,y) n6: (x+1,y)

n7: (x-1,y+1)

n8:(x,y+1)

n9:(x+1,y+1)

Page 19: 2010 年マルチメディア論 画像処理演習(2)

【演習5】 エッジ抽出後にぼかす

• エッジ抽出画像は、白黒がはっきりと描かれている。そこで、この画像をぼかしてみよう。

• 元画像を左に、エッジ抽出画像を右に描いたので、今度はエッジ抽出画像(右の画像)をベースにして、左にぼかした画像を描いてみよう。