MATLABを用いた画像処理

2014/11/18
MATLABを用いた画像処理
2014/5/14
ウィドウの仕組み
実行ボタン
ソースコード名
画像名
引数名
引数タイプ、大きさ
ソースコード
フォルダー
ソースコード
1
2014/11/18
画像ファイルの読み出しと書き込み
•
•
•
•
•
Input_img = imread(‘Img1.pgm’) % 画像ファイルの読み込み
Imshow(Input_img); % 画像を表示する
Output_img=Input_img; %画像のコピー
元画像の表示
figure;
Imshow(Output_img);
%画像としての出力
コピーされた
画像の表示
実行
画像の二値化
• 二値化とは、画素を0か255かにする。つまり黒白にする。
• 構文
• BW=im2bw(Image,level) % Imageは画像,levelの範囲は[0,1]
元画像の表示
二値化結果
2
2014/11/18
ガウシアンフィルタによるノイズの除去
• 画像の平滑化を行うことにより、ノイズの除去
• 構文
• Gf=fspecial(‘Gaussian’,[xsize,ysize],sigma); % ガウシアンフィルタを作成する
• Gus=imfilter(Input_img,Gf);
%画像にガウシアンフィルタをかける
• [xsize,ysize] はフィルタサイズで、普通は3*3である。
• sigmaは標準偏差値で、既定値は0.5で、以下のフィルタとなる
Gf 0.0113
0.0838
0.0113
0.0838
0.6193
0.0838
0.0113
0.0838
0.0113
1,
1
1, 1,
1
Pixel(x,y)
(ガウシアンフィルタ)
,
1
, ,
1
1,
1
1, 1,
1
(画素:
P(x,y)は注目画素で、
その他は8近傍と呼ぶ)
,
,
,
∗
1,
1
ガウシアンフィルタ結果
,
二値画像と
ガウシアンフィルタ後の二値化画像の比較
元画像
元画像からの
二値画像
ノイズが
除去された
ガウシアンフィル後の画像
ガウシアンフィル画像から
の二値化画像
3
2014/11/18
ラプラシアンフィルタによるノイズの除去
• 画像の変化を強調するフィルタで、エッジ検出や先鋭化を行う
• 構文
• Lf=fspecial(‘laplacian’,[xsize,ysize],alpha); % ラプラシアンフィルタを作成する
• LAP=imfilter(Input_img,Lf);
%画像にラプラシアンフィルタをかける
• [xsize,ysize] はフィルタサイズで、省略すると3*3となる
• alphaはフィルタを制御し、既定値は0.2で、以下のフィルタとなる
Lf 0.1667
0.6667
0.1667
0.6667
3.3333
0.6667
0.1667
0.6667
0.1667
1,
1
1, 1,
1
Pixel(x,y)
(ラプラシアンフィルタ)
,
1
, ,
1
1,
1
1, 1,
1
(画素:
P(x,y)は注目画素で、
その他は8近傍と呼ぶ)
,
,
∗
1,
1
ラプラシアンフィルタ結果
,
ラプラシアンフィルタによるエッジ抽出
4
2014/11/18
ヒストグラムの累計
画像文字の認識
• 課題:甲骨に刻まれた同じ文字を探し、赤い線を示す。
• bone_origin.bmp : 甲骨である
• Inscription.bmp : 甲骨文字である。
• アルゴリズム説明:
• ターゲットとする甲骨をスキャンして、マッチングしようとする甲骨文字の大き
さの画像を切り出す。
• 切り出された画像と甲骨文字画像を比較する。一致する場合は、切り出され
た画像の始点を記憶し、赤い線を塗る。
5
2014/11/18
Bone_origin.bmp
Recognition result Inscription.bmp
6