1 / 51

# 數位影像處理 第九章 影像分割 - PowerPoint PPT Presentation

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about '數位影像處理 第九章 影像分割' - jaden

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### 數位影像處理第九章 影像分割

• 閥值運算
• 閥值的應用
• 設定合適的閥值
• 可適性閥值運算
• 邊緣閥值
• 導數與邊緣
• 二階導數
• Canny 邊緣偵測
• Houngh 轉換
• 在MABLAB中執行Houngh轉換

9.1導論

9.2 閥值運算

9.2.1 單一閥值

:

>>r = imread ( ‘ rice.tif ’ ) ;

>> imshow ( r ) , figure , imshow ( r > 110 )

>>b = imread ( ‘ bacteria.tif ’ ) ;

>> imshow ( b ) , figure , imshow ( b > 100 )

>>im2bw ( image , level ) ;

>>im2bw ( r , 0.43 ) ;

>> im2bw ( b , 0.39 ) ;

>>p = imread(‘ paper.tif ’) ;

>> imshow ( p ) , figure , imshow ( p ＞ 124 )

9.2.2 雙重閥值

X>T1&X>T2

>>[ x , map ] = imread(‘ spine.tif ’) ;

>> s = uint8 ( 256 * ind2gray ( x , map ) );

>> imshow ( s ) , figure , imshow ( s ＞ 115 & s < 125 );

>> imshow ( im2bw ( x , map , 0.45 ) & ~ im2bw ( x , map , 0.5 ) )

9.3 閥值的應用

• 去除影像中不需要的細節，留下基礎要素。
• 顯示影藏的特性。

3. 還可用於其他用途，如將文字或雜亂背景去除。

>>r = read ( 256 ) * 128 + 127 ;

>>t = imread ( ‘ text.tif ‘ );

>> s = uint8 ( r * double ( not ( t ) ) );

>> imshow ( s ) , figure , imshow ( s ＞ 115 & s < 125 );

>> imshow ( tr > 100)

9.4 設定適合的閥值

。假設利用im2bw進行閥值運算，閥值 t 的範圍

Otsu 演算法可以利用

MATLAB中函數 graythresh

>>imshow(im2bw(n,tn))>>figure,imshow(im2bw(r,tr))>>figure,imshow(im2bw(b,tb))>>figure,imshow(im2bw(e,te))>>imshow(im2bw(n,tn))>>figure,imshow(im2bw(r,tr))>>figure,imshow(im2bw(b,tb))>>figure,imshow(im2bw(e,te))

>> c = imread(‘circles.tif’);>> x = ones(256,1)*[1:256];>> c2 = double(c).*(x/2+50)+(1-double(c)).*x/2;>> c3 = uint8(255*mat2gray(c2));>>t = graythresh(c3);>> ct = im2bw(c3,t);>> figure,imshow(c3),figure,imshow(ct);

9.5 可適性閥值運算

>> p1=c3(:,1:64);>> p2=c3(:,65:128);>> p3=c3(:,129:192);>> p4=c3(:,193:256);>> g1=im2bw(p1,graythresh(p1));>> g2=im2bw(p2,graythresh(p2));>> g3=im2bw(p3,graythresh(p3));>> g4=im2bw(p4,graythresh(p4));>>imshow([g1 g2 g3 g4])

9.6 邊緣偵測

edge ( image , ‘ method ‘parameters . . . )

9.7導數及邊緣

edge) ，和灰階值忽然改變的階梯邊緣 (step

edge) 或是理想邊緣 (ideal edge )。

f‘(x)，為圖9.12。剖面中保持不變的其導數

9.7.2 一些邊緣偵測濾波器

>> px=[-1 0 1;-1 0 1;-1 0 1];

>> icx=filter2(px,ic);

>> figure,imshow(icx/255)

>> py=px';

>> icy=filter2(py,ic);

>> figure,imshow(icy/255)

>>edge_p=sqrt(icx.^2+icy.^2);

>>figure,imshow(edge_p/255)

>>edge_t=im2bw(edge_p/255,0.3);

>>figure,imshow(edge_t)

>> edge_p=edge(ic,'prewitt');>> figure,imshow(edge_p);

edge除了取濾波器平方總合的平方根，還

>> edge_r=edge(ic,‘roberts’);>>figure,imshow(edge_r)>>edge_s=edge(ic,‘sobel’);>>figure,imshow(edge_s)

Roberts濾波結果

Sobel濾波結果

9.8二階導數

Laplacian ，可使用二階導數進行邊緣偵測

。不過二階導數雜訊的缺點是非常容易受到

，但與之前的Prewitt和Sobel方法比較，仍

edge 函數

Sobel濾波結果

9.8.2 零交錯

Laplacian濾波器比較適合用來找出零交錯

(zero crossings ) 的位置濾波結果出來為零的地

1.灰階值為負，且要和灰階值為正的像素直角相鄰。

2.像素值為零，且必須介於正和負的像素之間。

Marr-Hildreth 方法 :

1.使用高絲濾波器來平滑影像。

2.使用Laplacian濾波器對結果進行旋積。

3.找出零交錯。

9.9Canny邊緣偵測

Canny邊緣偵測，設計滿足邊緣偵測的三項要求:

1.降低錯誤率

2.邊緣定位

3.單一反應

Canny邊緣偵測

edge(ic,'canny',[0,0.05]);

edge(ic,'canny',[0.01,0.5]);

9.10Hough轉換

Hough轉換(Hough Transform)原本設

Hough轉換法仍然無法偵測到垂直線條。

9.11 在MATLAB中執行Hough轉換

>>hc=hough(c);

>>imshow(mat2gray(hc)*1.5)

>>max(hc(:))

>>[r,theta]=find(hc==95)