ヅザソラ画像と 簡単な画像処理 - wakayama-u.ac.jpchen/education/image/2012/L1bw.pdf ·...

47
画像と 画像と 簡単な画像処理 簡単な画像処理 11~12、18~21

Transcript of ヅザソラ画像と 簡単な画像処理 - wakayama-u.ac.jpchen/education/image/2012/L1bw.pdf ·...

デジタル画像とデジタル画像と

簡単な画像処理簡単な画像処理

11~12ページ、18~21ページ

講義資料及び宿題のWEBページ

http://www.wakayama-u.ac.jp/

~chen/education/imagejp.htm

デジタル画像デジタル画像

● 正方形の格子

● 1個の正方形は一つの色を持つ

● これらの正方形は画素という

5959

3030

00

136136

9797

6868

カラー画像: 1画素に3つの値

モノクロ画像: 1画素に1つの値

(白黒写真)

8484

4343

1313

7171

3232

11

3434

38385050

103103

1.複数の点である (≠ 小さい正方形) 点=画素

2.画素の位置は,行と列の番号で表す x=列、y=行

3.画素に「値」があり,「画素値」という。明るさ/色を表す。

0列 1列 2列 x 列

デジタル画像の中身デジタル画像の中身

0 行

1 行

2 行

y 行

y

x x x

y

y

画素(画素(PixelPixel))pixelpixel == picpicture ture elelementement

画素の位置: p = (x , y) = (列番号, 行番号) = (154, 132)

画素の値:

光センサの出力

色・明るさの表現(1)色・明るさの表現(1)

光センサ,人間の目

光を感知する能力に「限界」がある。

光の強さ

検知可能

の範囲

色・明るさの表現(2)色・明るさの表現(2)

光の強さ≦検知下限値 ⇒ 「黒」

光の強さ≧検知上限値 ⇒ 「白」

つまり,黒=光が検知できないほど弱い

白=光がそれ以上強くなっても,出力が変白=光がそれ以上強くなっても,出力が変

わらない

① 「黒」より弱い光、

② 「白」より強い光 検知・識別・表現 できない

色・明るさの表現(3)色・明るさの表現(3)

デジタル画像が表現できるのは、

「黒」 と 「白」 との間の光の強さである。

黒 ⇒ 0 で表現する

白 ⇒ 1 で表現する白 ⇒ 1 で表現する

そして,画像の画素値は,0~1 の間になる。

色・明るさの表現(4)色・明るさの表現(4)

• モノクロ画像の場合:0.0 → 真黒、光が全くない黒

1.0 → 真白、最大明るさの白

• カラー画像の場合:赤(或いは、緑、青)

0.0 → 赤(或いは、緑、青)光は全くない、

1.0 → 赤(或いは、緑、青)の最大明るさ

色・明るさの表現(5)色・明るさの表現(5)

画素値と明るさとの関係

画素値

1.0

0.0

画素値の整数表現画素値の整数表現

• 記憶容量,計算速度の関係で,画像値は、整数で表現されることが多い。

• N桁の二進数の整数の場合,

0.0 → 01.0 → (最大整数値)1.0 → (最大整数値)

にマッピングする。

0.0~1.0の間の値 vvは次の式で整数値 I I に変換する。

(四捨五入)実際に,N=8の場合は最も多くて,最大整数画素値=255

人間の目の特性人間の目の特性

可視光: 波長が400nm~750nmの間の電磁波

目の反応と光の波長との関係

目と光センサー目と光センサー

目の反応 カメラの反応

・人間の目とセンサーの色知覚が異なる・人間の目とセンサーの色知覚が異なる・人間の目とセンサーの色知覚が異なる・人間の目とセンサーの色知覚が異なる

・反射光のスペクトルが・反射光のスペクトルが・反射光のスペクトルが・反射光のスペクトルがR, G, Bより表現されるより表現されるより表現されるより表現される

赤、緑、青の原刺激

●国際照明委員会((((CIE))))では1931年に、3原色光

赤= 波長700nm赤= 波長700nm緑= 546.1nm青= 435.8nm

と規定

加法混色

赤、緑,青の3原色光を混ぜて、さまざまな色を表現する方法。

デジタルカメラ、ディスプレイ、テレビ放送などに

採用されている。

赤外線,紫外線の範囲に近づくと,目の色知覚が曖昧

になり,似たような色として認識してしまう。

ほぼ

同じ色

RGB色空間

RGB色空間

(R=0,G=1,B=1)

(R=0,G=0,B=1)

(R=1,G=0,B=1)

(R=1,G=1,B=1)

(R=1,G=0,B=0) (R=1,G=1,B=0)

(R=0,G=1,B=0)

(R=1,G=0,B=1)

RGB色空間

(R=0,G=1,B=1)

(R=0,G=0,B=1)

(R=1,G=0,B=1)

(R=1,G=1,B=1)

(R=1,G=0,B=0)

(R=1,G=1,B=0)

(R=0,G=1,B=0)

画像の内部表現画像の内部表現

コンピュータの上では、

画像 は 行列 で表現される。

• この場合、

行列の行 = 画像の行

行列の列 = 画像の列行列の列 = 画像の列

行列の要素 = 画素

• コンピュータ(プログラム)の中で、行列と同様、

画像も配列で記述されることが多い。

簡単な画像処理

1.画像を明るく(或いは暗く)する.

● 考え方: 明るくしたい = 画素値を増やす

● 方法: 足し算

全ての 画素値 = 元の画素値 + 定数

調整後の画素値

0

調整前の画素値

無変換

画素値変換曲線

定数 > 0 の場合: 画素値が増える

⇒ 画像が明るくなる

定数 < 0 の場合: 画素値が減る

⇒ 画像が暗くなる

定数 > 0

定数 < 0

+50

+100+150

注目

-50

-100 -150

注目

簡単な画像処理

2.明るいものはより明るくする

方法: 画素値を定数倍にする.

調整後の画素値 = 調整前の画素値 × 定数

調整後の画素値

定数 > 1.0 の場合: 画素値の大きいものはより大幅に大きくなる

0

無変換

k

調整前の画素値画素値変換曲線

定数 >1.0

定数 < 1.0

のはより大幅に大きくなる

⇒ 明るい画素と暗い画素の差が大き

くなる

定数 < 1.0 の場合: 画素値の大きいものはより大幅に小さくなる

⇒ 明るい画素と暗い画素の差が小さ

くなる

×0.7

×1.5

画素値の演算に関する注意事項画素値の演算に関する注意事項

1.Overflow と Underflow

Overflow:

8桁の符号なしの2進数が表現できる最大値: 255

変更された画素の値が 255 を超えたとき、何が起きるのか。

例: 画素値= 240 + 50

2進数で表現すると

240 11110000

+ 50 ⇒ + 110010

= 290 1 00100010

溢れ!=2 =256

溢れ!=2 =256

結果を画素に代入するとき、

溢れたものは「捨てられる」ために、

画素値 = 240 + 50 – 256 = 34

逆に小さくなった !

Underflow:

画素値は、明るさを表すものなので、マイナスの値は意味持たな

い。

8桁の符号なしの2進数が表現できる最小値: 0

変更された画素の値が マイナス になったとき、変更された画素の値が マイナス になったとき、

何が起きるのか。

例: 画素値= 40 - 502進数で表現すると 1+1

40 1 00101000

- 50 ⇒ - 00110010

= -10 11110110

上位から借りたもの=256

画素値 = 256 + 40 - 50 = 246

逆に大きくなった !

画素値の演算における画素値の演算におけるOverflowOverflowととUnderflowUnderflowの対処の対処

計算結果を画素に代入する前に、

1) Overflow 或いは Underflow が起きているかを判断

2) Overflowが発生したら、画素が表現できる最大値にUnderflowが発生したら、 0 にする

飽和処理

>≤≤<

=255;255

2550;

0;0

計算結果

計算結果計算結果

計算結果

画素値

簡単な画像処理

1.画像を明るく(或いは暗く)する.飽和処理つき

方法: 画素値に定数を足す.

調整後の画素値 = 調整前の画素値 + 定数

調整後の画素値

0

調整前の画素値

無変換

画素値変換曲線

定数 > 0 の場合: 画素値が増える

⇒ 画像が明るくなる

定数 < 0 の場合: 画素値が減る

⇒ 画像が暗くなる

定数 > 0

定数 < 0

+150飽和処理無飽和処理無

飽和処理有飽和処理有

-150飽和処理無飽和処理無 飽和処理有飽和処理有

簡単な画像処理

2.画素の明るさに応じて調整を行う 飽和処理つき

(明るいものはより明るく(或いは暗く)する)

方法: 画素値を定数倍にする.

調整後の画素値 = 調整前の画素値 × 定数

調整後の画素値

定数 > 1.0 の場合: 画素値の大きいものはより大幅に大きくなる

0

無変換

k

調整前の画素値画素値変換曲線

定数 >1.0

定数 < 1.0

のはより大幅に大きくなる

⇒ 明るい画素と暗い画素の差が大き

くなる

定数 < 1.0 の場合: 画素値の大きいものはより大幅に小さくなる

⇒ 明るい画素と暗い画素の差が小さ

くなる

×1.5 ×1.5

飽和処理無飽和処理無 飽和処理有飽和処理有

簡単な画像処理

3.コントラストの調整.

コントラストとは画像の暗い部分(黒)と明るい部分(白)との対比

のことである。

コントラストを強くするために, コントラストを弱くするために,

a) 暗い部分をより暗くする. a) 暗い部分を明るくする.a) 暗い部分をより暗くする. a) 暗い部分を明るくする.

b) 中間の部分を変化させない. b) 中間の部分を変化させない.

c) 明るい部分をより明るくする. c) 明るい部分を暗くする.

画素が明るい、或いは暗い の判定方法:

画素値と中間値との差を見ればわかる

画素値-中間画素値 > 0 : 明るい画素

画素値-中間画素値 < 0 : 暗い画素

コントラストを強くするために,

a) 暗い部分をより暗くする.

出力値=入力値-倍率×(中間値-入力値)

=入力値+倍率×(入力値-中間値 )

b) 中間の部分を変化させない.

出力値=中間値

=入力値+倍率×(入力値-中間値 )

c) 明るい部分をより明るくする.

出力値=入力値+倍率×(入力値-中間値 )

コントラストを強くするために,

出力値=入力値+倍率×(入力値-中間値 )

出力値= (1+倍率) ×入力値-倍率×中間値

= (1+倍率) ×(入力値-中間値) +中間値

コントラストを弱くするために,

a) 暗い部分を明るくする.

出力値=入力値+倍率×(中間値-入力値)

=入力値-倍率×(入力値-中間値 )

b) 中間の部分を変化させない.

出力値=中間値

=入力値-倍率×(入力値-中間値 )

c) 明るい部分を暗くする.

出力値=入力値-倍率×(入力値-中間値 )

コントラストを弱くするために,

出力値=入力値-倍率×(入力値-中間値 )

出力値= (1-倍率) ×入力値+倍率×中間値

= (1-倍率) ×(入力値-中間値) +中間値

コントラストを強くするために,

出力値= (1+倍率) ×(入力値-中間値) +中間値

コントラストを弱くするために,

出力値= (1-倍率) ×(入力値-中間値) +中間値

まとめて:

コントラスト調整:

出力値= k ×(入力値-中間値) +中間値

強くするとき: k > 1

弱くするとき: k < 1

Iout

最大明るさ

変換曲線

0 Iin

中間値

元画像

コントラスト調整した画像

元画像

コントラスト調整した画像

元画像

コントラスト調整した画像

宿題

1.画像処理ソフトウェアPhotoshopやGimpなどを使って,下記の色の12個の正方形を描

き,それぞれの色の赤、青、緑の値を調べて,

描いた図形と調べた結果を印刷して提出して

ください。ください。

赤、暗い赤、橙色、黄色、

黄緑、薄い緑、深緑、紫、

水色、薄い、灰色、茶色

(つづく)

2.デジタル画像では,明るさを0~1の間の数

値で表現する理由を説明しなさい。

3.明るさを0.0~1.0の間の数値を0~の整数にマッピングする時,明るさ0.5の整数値を計算しなさい。

4.画素値は0~ の整数値で表す画像4.画素値は0~ の整数値で表す画像

をより明るくしようとして,全ての画素値に40

を足し算する。画像の中にある、元の画像値

がそれぞれ、30, 120, 140, 200, 250の画素の処理後の結果を,飽和処理なしとありの場

合を分けて求めなさい。