MATLAB による画像・映像処理3
画像の強調と復元
目的
近傍処理を用いて、ノイズの削減、画
像の強調・復元を行う処理について、そ
の効果を実感する
画像の近傍処理
画像gの近傍領域に適用する重み関数を
( , ) とおく。
このとき、処理画像 ( , ) は次のように表わされる。
(4) 重み関数が値を持つ領域は
3×3、5×5 などの小領域とする場合が多い。
f(i, j) = ∑K 2k=−K 2⁄ ⁄ ∑L 2l=−L 2⁄ ⁄ w(k, l)g(i + k, j + l)
近傍フィルタ処理
重み付き移動平均フィルタ
3×3 の一様重みは、次のように表わさ れ表の 中央が を示している
w(k, l) :
1 1 1
1 1 1
1 1 1
1/9
一様重みフィルタによる平滑化(例3−1)
次のプログラムは、モノクロ画像 G を入力し、
平均 0 、分散0.01(最大 1.0 に正規化された画 素値に対する値)のガウスノイズを加えた画像 GN に対して、 3 × 3 の一様重みフィルタにより、
平滑化を行うものである。
オリジナル画像 G 、ノイズ加算画像 GN 、平滑
化処理画像 GNF 、およびそれらのヒストグラムを
示している。
一様重みフィルタ処理(例3−1)
G=imread(‘gray?.bmp');
% adding noise to intensity G
GN=imnoise(G,‘gaussian’,0.0,0.01);
w=[1 1 1;1 1 1; 1 1 1]/9;
GNF=GN;
GNF=uint8(filter2(w,GN));
figure(1);
subplot(2,3,1); imshow(G);
subplot(2,3,2); imshow(GN);
subplot(2,3,3); imshow(GNF);
subplot(2,3,4); imhist(G);
subplot(2,3,5); imhist(GN);
subplot(2,3,6); imhist(GNF);
※関数filter2は、行列に対して重み付き加算を求める。従って、カラー画
像Fを処理する場合には、各成分(F(:,:,1)、F(:,:,2)、F(:,:,3))に対して関数を 用いなければならない。
平均 分散
提出課題7
指定された RGB カラー画像 color?.bmp を変数 F に読み込 み、 R 、 G 、 B の各成分に平均 0 、分散 0.01 のノイズを加えた のち、 3 × 3 の一様重みフィルタによる平滑化処理を行う。
このとき、一様重みフィルタを1回掛けた平滑化画像、
2回掛けた平滑化画像の二つを作成する。
オリジナル画像 F 、ノイズの付加された画像 FN 、一様重 みフィルタを1回掛けた平滑化画像 FNS 、2回掛けた平滑 化画像 FNSS を表示し、 kadai7_1.jpg(subplot は2x2)として 提出しなさい。また、ノイズの付加された画像 FN と平滑化 を2回行った画像 FNSS の各成分( R,G,B 成分)のヒストグラ ムを表示し、 kadai7_2.jpg (表示2x3)として提出しなさい。
(参考 例3 - 1)
画像の微分と画像の復元
撮像された画像には、レンズの収差や撮 像素子面での滲みなどにより、画像の鮮 明度が低下していることがある。これは画 像の高周波数成分の振幅の低下となって 現れる。
画像を微分すると高周波数成分が強調
され、鮮明度の低下した画像の高周波数
強調に微分された画像がよく利用される。
画像の微分
画像の微分を安定して求めるため、近傍処理フィルタがよく用 いられる。サンプリングされた画像の微分は、近傍画素の差分 で近似されることが多い。水平、垂直方向の微分は、次のよう な重みを持つフィルタにより近似される。
0 0 0 -1 0 1 0 0 0
0 -1 0 0 0 0 0 1 0
∂
∂x ∶ ∂
∂y ∶
1/2 1/2
微分フィルタ
画像の微分を行うと、ノイズが強調されるので、微分に対し て垂直な方向で平滑化を行うフィルタとして、Prewitt フィルタ および Sobel フィルタがよく知らせている。これらのフィルタの 水平方向の微分は、次のように近似される。垂直方向の微 分も同様である。
Prewitt フィルタ(wph) Sobel フィルタ(wsh)
-1 0 1 -1 0 1 -1 0 1
-1 0 1 -2 0 2 -1 0 1
1/6 1/8
画像のグラディエント
画像 g のグラディエントは、
と定義され、近傍処理フィルタを用いて求められた値を用 いて算出できる。
画像処理においては、グラディエントの振幅と位相はつ ぎのように定義される場合が多い。
∇g = (
∂∂gx,
∂∂yg)
| ∇g| = ∂g
∂x +
∂g
∂y
∠∇g = tan−1⎝
⎜⎛∂g
∂y ∂g
∂x⎠
⎟⎞
グラディエント振幅の表示
次のプログラムは、モノクロ画像を読み
込み、オリジナル画像と共に、画像のグラ
ディエントの振幅を表示したものである。
微分画像のプログラム(例3−2)
G=imread(‘gray?.bmp');
wv=[-1 -1 -1;0 0 0; 1 1 1]/6;
wh=[-1 0 1; -1 0 1; -1 0 1]/6;
GV=filter2(wv,G);
GH=filter2(wh,G);
GG=uint8((abs(GV)+abs(GH))*4+128);
GV=uint8(abs(GV)*4+128);
GH=uint8(abs(GH)*4+128);
figure(1);
subplot(2,2,1); imshow(G);
subplot(2,2,2); imshow(GG);
subplot(2,2,3); imshow(GV);
subplot(2,2,4); imshow(GH);
提出課題8
カラー画像 F を読み込み、その輝度画像 H(:,:,1) を求 め、輝度画像を Prewitt フィルタ (wh,wv) と Sobel フィル
タ (wsh,wsv) により微分し、輝度画像のグラディエント
振幅画像 G を求めなさい。
レポートとして、カラー画像 F 、輝度画像 H(:,:,1) 、 Prewitt と Sobel フィルタによるグラディエント振
幅画像 GPF 、 GSF を表示した kadai8.jpg ( subplot は2x 2)を提出しなさい。ただし、輝度画像は、カラー画像 を関数 rgb2ycbcr により YCbCr 変換した画像 H の
Y 成分 H(:,:,1) を使用すること。
参考 例3−2
画像の鮮明化
画像の中のエッジの変化が緩やかになると、画像は鮮明 度が低く感じられてくる。画像の鮮明度を上げるため、画像 の高周波数成分を強調することがよく用いられている。
画像の高周波数成分の強いものとして、ラプラシアン演算 の施された画像が用いられる。
ラプラシアン演算 は、微分を用いると次のように表され る。
∇
2= ∂
2∂x
2+ ∂
2∂y
2ラプラシアン・フィルタ
ラプラシアン演算も、近傍処理フィルタ で近似するこ とが行われており、次のように与えられる。
1 1 1
1 1 1 1 1 1 0 0 0
0 -1 0 0 0 0 1 1 1
1 -8 1 1 1 1
∇
2∶ 1
9
= + 19ラプラシアンによる鮮明化
画像の鮮明化は、対象とする画像からその画像のラプラシア ンの 倍を引くことによって行われる。この処理を近傍処理フィル タで実現するとき、その重み値は次のように示される。
1 1 1 1 -8 1 1 1 1 0 0 0
0 1 0 0 0 0
0 0 0 0 1 0 0 0 0
1 1 1 1 1 1 1 1 1
(1 + α) − α
= 9
1 − α∇
2∶ − α
9
提出課題9
カラー画像を読み込み、3x3の一様重みフィ ルタを 2 回適用し、ぼけた画像を作成しなさい。
ぼけた画像を対象画像として、ラプラシアン を用いた鮮明化を適用した画像を求めなさい。
α は 1.0 、 2.0 として処理を行い、オリジナル画
像 F 、対象画像 FS 、それぞれの α に対する処理
画像 FP1 、 FP2 を表示して、 kadai9.jpg ( subplot は
2x2)として提出しなさい。