• 沒有找到結果。

軟體程式之發展

在文檔中 中 華 大 學 (頁 47-75)

影像量測屬於非接觸性,它可以解決人工量測的缺點,例如污染或損傷工 件、工件量取速度受限制。目前影像處理技術運用於工商業的檢測,如零件內部 的瑕疵,電子業印刷電路板、孔、焊點、零件插件等檢查。,本論文將針對影像 邊緣檢測之方法加以討論。影像邊緣檢測的方法是一種將物體邊緣視為不連續有 不均勻性質的檢測方法。

3-1 影像的基本單位

影像中的灰階值是以 f(i,j) 來表示,i,j 分別表示影像中的 x,y 的座標點,

我們可以把數位化影像看成是一個矩陣,其行列的值可以定出影像點之座標,且 矩陣內每一點的元素所對應的值稱為灰階值,陣列內的元素稱為圖素(pixel)。

影像大小為 pixel 單位,即影像的基本單位。

本實驗採用 512x480x1 byte 個來儲存一幅影像,黑白影像一個點只要用一 個 byte 儲存[19],而一幅 512x480 影像座標可以如圖 3.2 所示。

3-2 影像分割

影像分割法最常見的是二值化法、三值化法、及多值化法。以二值化法來説,

所謂的二值化是以門檻值,將影像中所有像素的灰階值分成兩種灰階值。灰階值 大於此門檻值時設定為 255,小於此門檻值時設定為 0。可將影像區分成目的物 及背景。

3-2-1 直方圖

影像分割最常使用的方法是統計法,一般是根據影像的灰階特性,進行統計與分 類以得到一幅稱為直方圖的灰階統計圖,因此直方圖又稱為灰階統計圖。直方圖

圖中像素灰階的分部情況,我們可以得知影像的相關性,作為分割參考。

3-2-2 尋找門檻值

門檻值的取得可分為兩種:一種是人工方式選取,另一種是閥值演算法自動 取得。在許多影像檢測系統下,由自動閥值是物體本身受到物體之亮度特徵、尺 寸、所佔之影像比例與物體種類之多寡推導而出,所以不同的影像就有不同的門 檻值

自動二值法有:

(1) 平均灰階值法(Mean-value method) (2) 邊緣特徵閥值算法

(3) 歐蘇法(Otsu method) (4) 疊代法(Iterative method) (5) 矩量恆定法(moment-preserving)

將讀取的影像依照直方圖的情況,可以決定應該使用二值化法較佳。

3-2-3 臨界值設定

臨界值(Threshold Value)又稱為閥值,主要是用來分割一幅影像。以二 值化法為例,所謂的二值化是選擇一個閥值,將影像中所有的像素其灰階值轉換 成只有二個值。令位於第 i 行及第 j 列之像素其灰階值為 f(i,j),閥值以 T 表 示,當 f(i,j)大於或等於閥值時,f(i,j)設成 230:反之,當 f(i,j)小於閥 值時,則 f(i,j)設成 30,因此二值化所代表的意義可以下式表示:

=

<

=

30 ) , ( ,

) , (

230 ) , ( , ) , (

j i f then T j i f if

j i f then T j i f if

以 4×4 大小之影像為例,假設此影像各個像素的灰階值如圖 3.1 所示:

11 10 9 8 7 8 10 11 12 13 14 12 9 8 8 7

圖 3.1 4x4 像素的灰階值

如果閥值 T 設成 10,則上表所示之影像經過二值化後,影像之灰階值將被轉換 成:

230 230 30 30 30 30 230 230 230 230 230 230 30 30 30 30

圖 3.2 影像二值化

3-3 數位影像濾波原理

利用濾波將影像中的像素點(pixel)做遮罩的運算。一般常使用的遮罩 3×

3、5×5、7x7,……等,當使用較大的遮罩時,運算的速度會較慢,濾波效果較 佳。以 3×3 遮罩例子,如圖 3.3 所示。

f(i-1,j) f(i,j) f(i+1,j)

f(i-1,j+1) f(i,j+1) f(i+1,j+1)

圖 3.3 f(i,j)相鄰八個灰階值

遮罩定為:V1 V2 V3

V4 V5 V6 V7 V8 V9 點運算方式如下:

h(i,j) =V1f(i-1,j-1)+V2f(i,j-1)+V3f(i+1,j-1)+ V4f(i-1,j) +V5f(i,j) +V6f(i+1,j)+ V7f(i-1,j+1)+V8f(i,j+1)+V9f(i+1,j+1)

將影像以由左往右,由上至下的方式逐點運算,即可以得到新的影像[5] 。

3-4 空間濾波

本研究所要處理的是當影像內夾帶有雜訊時,可以使用濾波來處理,對座標 上影像點進行遮罩運算以空間濾波器去除影像中的雜訊。

空間濾波常用的有均值濾波、中值濾波、高通濾波。以下將敘述空間濾波器 對影像處理方法。

3-4-1 均值濾波(又稱低通濾波)

在 CCD 擷取影像時將受到各種雜訊干擾,此雜訊包括 CCD 本身內部產生的雜 訊。或是在影像傳輸過程中造成影像品質受到干擾,影像會受到雜訊的影響,此 均值濾波器,主要用在消除影像上高頻部分,使得影像均均化。

當數位影像出現有高頻率成份時,此種濾波器雖然可消除對數位影像的雜 訊,但影像也變的較模糊,將影像中每個像素周圍鄰近之像素點灰階值加起來,

然後以這些點的平均值取代該點之灰階值。例如使用 3×3 之遮罩就有九個灰 階值,以九個灰階值求其平均值。均值濾波有將影像較尖銳化部份消除功能,即 高頻的部份消除,則有低通濾波器之稱[20]。

3-4-2 中值濾波

中值濾波是一種非線性的濾波器,也可用來平滑影像,消除孤立的雜訊,並 且可以保持影像的銳利。中值濾波器並未對遮罩內之圖素做任何運算,而是將遮 罩內的圖素值作排序,然後取出中間值,將遮罩內每個圖素以此中間值取代。

除了把雜訊消除外,中值濾波還能對物件邊界的形狀及位置能夠保有如初。

3-4-3 高通濾波

高通濾波是一個可以突顯銳化影像的濾波器它能將影像灰階變化大的部 分,提高它的響應,灰階變化平滑的部分降低它的響應。所以更能將模糊的影像 加以處理成為較清晰的影像,使得影像內的特徵更清楚。

3-5 邊界點搜尋

邊是基本影像特徵,它們是傳達關於物體邊界有用的資訊

影像分析上用 於物體鑑別,它們的基本重要性在於數位影像處理和分析,但由於物體影像內容 多樣化且複雜化,及邊之搜尋易不精確性,但是邊緣明亮強度也伴隨影響邊之搜 尋精確性,這個定義含有一個邊是局部照明的變化。目前需要藉由數學邊界的定 義較為容易處理。

將描述演算法為了檢測邊界。邊界(edge)是物體影像中灰階突然變化的地 方,影像中區隔物體與背景的點稱謂邊界點。邊界點對量測後續位置偵測相當重 要,邊界偵測的目的就是將這些邊界點搜尋出來[21]。

邊界點搜尋方式相當多主要有下列五種:

(1) 形態處理與 XOR 運算法

(3) 鏈碼輪廓追蹤法(chain coded edge detection)

(4) 灰階矩量邊緣搜尋法(moment edge detection)

(5) 空間矩量邊緣搜尋法(spatial moment edge detection)

本研究針對梯度運算子邊緣搜尋法和鏈碼輪廓追蹤法作一敘述:

3-5-1 梯度運算子邊緣搜尋法

一幅影像上,任意點的一階導數,可以由梯度(gradient)大小表示,影像

) , (x y

f 在任一點(x,y)的梯度(gradient)向量表為∇f = 

 

y x

G

G =









∂ ∂

y y x f

x y x f

) , (

) , (

[22]

在影像邊緣檢測中,∇f 稱為梯度,它的強度大小,可以用水平方向梯度Gx和垂

直方向梯度Gy合成。∇f =

[

Gx2 +Gy2

]

21,或者f =Gx + Gy ,要計算出影像的梯

度,就必須採用遮罩方式,將影像中圖素點的梯度值計算出,影像邊緣位置即可 得知。

要計算每一個圖素點的偏導數 x

y x f

∂ ( , )

y y x f

∂ ( , )

可以用數位形式梯度運

算。例如:Robert、 Sobel、Prewitt、 Laplacian、 LOG(Laplacian of the Gaussian)五種。

Gx= 

 

−1 0 1

0 Gy= 

 

−1 0

0 1

圖 3.4 Robert 運算子

Sx=





1 0 1

2 0 2

1 0 1

Sy=





−1 2 1 0 0 0

1 2 1

圖 3.5 Sobel 運算子

Px=





1 0 1

1 0 1

1 0 1

Py=





−1 1 1 0 0 0

1 1 1

圖 3.6 Prewitt 運算子

∇ ≈2





− 0 1 0

1 4 1

0 1 0

圖 3.7 Laplacian 運算子













0 0 1 0 0

0 1 2 1 0

1 2 16 2 1

0 1 2 1 0

0 0 1 0 0

圖 3.8 LOG 運算子

3-5-2 鍊碼輪廓追蹤法

物體邊界的表示,由二元影像像素所連接的路徑,考慮以 0~3 來代表四鄰 近,0~7 來代表八鄰近,且每一路徑具有特定的方向,每一物體邊界路徑能以 順時針或逆時針方式構成後續邊界路徑,形成邊界鍊碼[21]。

圖 3.9 (a)四方向

(b)八方向

3-6 框選兩平行線求間距及公差

3-6-1 框選座標點處理原理

座標點框選方式,是利用原始影像檔作為量測物件以滑鼠框選影像檔幾何圖 素,取得影像邊緣點幾何資料後經由程式計算處理,而得到最後量測結果,圖2.8 為框選量測處理流程圖。

框選檢測範圍的原理是利用剪裁區域影像,定義方框的起始點與對角結束點 來決定框選的區域,而抓取區域座標點採用三種事件處理程式:On MouseDown,

On Mouse Move 及 On Mouse Up 分別處理滑鼠左鍵被按下、滑鼠移動及鬆開滑鼠 左鍵時事件處理。OnMouseDown 中決定起始點之值, OnMouseMove 隨著滑鼠移動 描出區域,OnMouseUp 決定結束點之值[23]。

圖 3.10 框選量測處理流程圖

3-6-2 最小平方法推導

最小平方法E2為 n 資料點集合的垂直偏差的平方和,對於E2是一個最小

化,那麼 ( 2) 0

∂ =

m

E , ( 2) 0

∂ =

b

E (1)

對於i=1,...,n,為了適合線性函數

b mx

y

i

=

i

+

(2)

[ ]

= +

i

i

i mx b

y b

m E

1

) (

) ,

( (3)

[ ]

= + =

∂ =

n

i

i

i mx b

b y E

1 2

0 ) (

) 2

( (4)

[ ]

= + =

∂ =

n

i

i i

i mx b x

m y E

1 2

0 )

( ) 2

( (5)

由(3)、 (4)、(5)導成方程式(6)、(7)

= = =

+ n

i i n

i

i y

x m nb

1 1

(6)

∑ ∑

= + =n = =

i

n

i

i i i

n

i

i m x x y

x b

1 1

2 1

(7)

由(6)、(7)寫成矩陣形式(8)

=

∑ ∑

=

=

= =

=

n

i

i i n

i i

n

i

n

i i i

n

i i

y x y

m b

x x

n x

1 1

1 1

2

1 (8)

解 b、m

















=









=

=

=

=

=

n

i i i n

i i n

i i n

i i

n

i i

y x y x

x n x

m b

1 1 1

1 2 1

1 (9)

求 2×2 逆矩陣









=









∑ ∑ ∑ ∑

∑ ∑

=

=

=

= = = =

= =

n

i i n

i i n

i

i i n

i

n

i

n

i

n

i

i i i

i n

i

n

i i

i n x y x y

y x xi x

y x

x n m

b

1 1

1

1 1 1 1

2

1

2 1

2 ( )

1

(10) 因為

y n y

x n x

n

i i n

i

i

= ∑ =

= =

1 1

;

n y n y

x x

n

i i n

i

i

= =

=

= 1 ; 1 所以

∑ ∑

∑ ∑ ∑

= =

= = =

=

= n

i

n

i i i

n

i

n

i

i i n

i i i

n

i i

x x

n

y x x

x y

b

1

2 1 2

1 1 1

2 1

)

( (11)

∑ ∑

∑ ∑ ∑

= =

= = =

= n

i

n

i i i

n

i

n

i

n

i i i

i i

x x

n

y x

y x n

m

1

2 1

2

1 1 1

)

( (12)

yi是最適線以 x 座標xi,所以 , b mx

yi = i + (13)

實際垂直(vertical)點和適合(fitted)點之間誤差[9]

i i

i y y

e = − (14)

圖 3.11 實際 vertical(垂直)點和 fitted(適合)點之間誤差

將框選任一條平行線區段產生 n 個座標點資料

(

x1,y1

) (

x2,y2

)

...

(

xi,yi

)

....

(

xn,yn

)

代入(11)(12)得m1,b1之解:代入斜截式 y=mx+b 得最小平方法直線方程式y1 =m1x+b1

ERR1= 

 

 −yi yi x

2 1) ( 1

1

+ m >0。 (15)

圖 3.12 垂直式誤差

ERR2= 

 

 −yi yi x 2

1) ( 1

1

+ m <0 (16)

將框選相對應平行線區段產生 m 個座標點資料

(

x1,y1

) (

x2,y2

)

...

(

xj,yj

)

...

(

xn,yn

)

代入(11)(12)得m2,b2之解:代入斜截式得最 小平方法直線方程式y2 =m2x+b2

ERR3= 

 

 −yj yj x

2 2) ( 1

1

+ m >0。 (17)

圖 3.13 垂直式誤差

ERR4= 

 

 −yj yj x

2 2) ( 1

1

+ m <0 。 (18)

3-6-4 矩形量測原理

當框選平行直線抓取第一條第一點之座標設為

(

x1, y1

)

,抓取第二條第一點座

標設為

(

x2, y2

)

連此兩點直線之斜率m3=

2 1

2 1

x x

y y

− 。且此兩點間距離為

dists =

(

x1x2

) (

2 + y1y2

)

2 (19) 兩點連線直線與第二平行直線交角之斜率m4

圖 3.14 兩直線交角斜率

當框選第二條平行線斜率等於零,m3等於零或m3等於π/2,則 dist=0。

當框選第二條平行線斜率等於零 且當框選平行直線抓取第一條第一點之座標 設為

(

x1,y1

)

,抓取第二條第一點座標設為

(

x2,y2

)

連此兩點直線之斜率m3,m3

等於π/2或不等於零,計算水平兩平行直線間距離。如圖 3.15 所示。

圖 3.15 斜率等於零求兩平行線距離

當框選第二條平行線斜率等於零 且當框選平行直線抓取第一條第一點之 座標設為

(

x1,y1

)

,抓取第二條第一點座標設為

(

x2,y2

)

連此兩點直線之斜率

m3,m3不等於

π 或不等於零,計算垂直兩平行直線間距離,如圖 3.16 所示。 2

圖 3.16 斜率等於

π 求兩平行線距離 2

量兩平行線距離之用途:工業製造業上應用於量測平行導線接頭插腳間隔距 離,平行孔、平行槽、平行物體檢測。

當框選第二條線斜率大於零且當兩平行線斜率為正,計算兩平行直線距離,

如圖 3.17 所示。

圖 3.17 斜率正求兩平行線距離

當框選第二條平行線斜率小於零且當兩平行線斜率為負,計算兩平行直線距 離,如圖 3.18 所示。

圖 3.18 斜率負求兩平行線距離

框選兩平行線距離系統流程如圖 3.19 所示

開始 輸入影像 空間濾波

二值化

鍊碼追蹤邊

框選平行線相對 邊緣區域範圍

使用最小平 方法求出邊 緣直線方程

框選平行線任一 邊緣區域範圍

排序找正誤 差最大,最 找負誤差最小。

大,最小。

當兩平行線斜 率為正,計算兩

線間距離

求得兩平行 線間距離

公差 由推估框選 線,求兩線兩平行直 第一點連線 斜率,再與 第二條平行 線求交角斜

計算兩垂直平行線 間距離

框選第二條線斜率 大於零 小於零

等於零

結果

兩線水平平行 兩線垂直平行

計算兩水平平行線

間距離 當兩平行線斜 率為正,計算兩 線間距離 使用最小平 方法求出邊 緣直線方程

並當框選出

每一點資料 (x.y)以直 之同x座標線方程式 對應y座標 相差乘上C0Sθ 並使框選出

每一點資料 (x,y)以直線

方程式之座 標對應y座 標,相乘上 COSθ

排序找正誤 差最大,最 找負誤差最小。

大,最小。

第一次框選

轉換成座標 轉換成座標

第二次框選

圖3.19 框選平行線流程圖

在文檔中 中 華 大 學 (頁 47-75)

相關文件