Upload
arista
View
37
Download
0
Embed Size (px)
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
Citation preview
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 」をダウンロードする。 → 左の「ダウンロード」をクリックし、「最新版 Ver. 1.21 」を選択
する。 → 保存したファイル(セットアップファイル)をクリックする。
(3) TBasic のフォルダを開いて、 Tbasic.exe を実行(クリック)する。
(4)プログラム-新規作成 で、以下のプログラムを入力して、実行してみる。
(5) Tiny Basic for Windows のWEBページがあるので参考にしてください。
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• 「即実行」をクリックする。
3.座標系を知る
(0,0) (300,0) (600,0)
(600,400)(300,400)(0,400)
4. 1 LINEと色番号
• 直線を描く方法: line ( 始点 )-( 終点 ), 色番号• 【例】 line (150,0)-(150,400),14
• グラフィックで使える色は 16 色で,色番号0 から 15 まで指定できます。 色は次のように割り当てられています。
4. 2 LINEで長方形を描く
• 長方形を描く方法: line ( 始点 )-( 終点 ), 色番号 ,bf• 【例】 line (300,0)-(600,400),14,bf ←塗りつぶす
• 【例】 line (300,0)-(600,400),14,b ←塗りつぶさない
• 長方形の色は 16 色で,色番号 0 から 15 まで指定できます。 色は次のように割り当てられています。
【演習1】 LINE の演習
(0,0) (300,0) (600,0)
(600,400)(300,400)(0,400)
ここを黒く塗る
簡単な漢字をLINE で書く
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)
6. GetRGBPixel(x,y) のy座標
(0,0) (300,0) (600,0)
(600,400)(300,400)(0,400)
y の値
x の値 pset(x+300,400-y)
【演習2】 画像を斜め傾ける
(0,0) (300,0) (600,0)
(600,400)(300,400)(0,400)
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
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
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)
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)
【演習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
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)
【演習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)
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)
【演習5】 エッジ抽出後にぼかす
• エッジ抽出画像は、白黒がはっきりと描かれている。そこで、この画像をぼかしてみよう。
• 元画像を左に、エッジ抽出画像を右に描いたので、今度はエッジ抽出画像(右の画像)をベースにして、左にぼかした画像を描いてみよう。