機器視覺軟件Sherlock的應用——標定
發布時間:2007/4/23 0:00:00 訪問次數:636
u=(ax+by+c)/(hx+hy+I),
υ=(dx+ey+?)/(gx+hy+i)
(x,y)是攝像機或物體平面上的坐標,(u,v)是另一個平面上的轉換坐標。A,b,c,d,e,f,g,h和I是透視畸變算法從內部取出用于轉換每個要求點的轉換參數。
2 相機標定的步驟
圖2是標定主頁圖。相機標定的一般步驟如下:
(1)建立一個子程序(Insert | Subroutine)。
(2)在策略窗口樹的頂部雙擊子程序圖標,Sherlock顯示子程序編輯對話框。
(3)編輯子程序,選取“Execute During Calibration”點擊OK按鈕保存并且退出。
(4)創建一個虛擬相機(Insert | Subroutine)。
(5)通過使用菜單命令(Stakeout | Options)顯示默認的相機坐標柵格,在坐標柵格下方選擇“Lines",然后點擊OK按鈕退出對話框。
圖2
(6)將一個已知尺寸的零件作為標定塊放置在相機的視野范圍內。
(7)在虛擬相機窗口,選擇零件上的四個特征點作為標定點。
(8)在子程序中插入公式(fromular)。編輯公式,將四個特征點的坐標作為公式的輸入值,選擇標定(calibrate)函數。
(9)編輯標定(calibrate)函數的參數,輸入四個標定點的實際坐標值。
(10)再次選擇菜單命令(Investigate | Calibrate),將出現新的坐標柵格。可以在Stakeout | Options中改變柵格大小。
(11)對其他零件進行測量,測量的結果將是實際測量值。
3 單個相機多個標定
Sherlock的標定在同一個測量平面內是有效的。如果用一臺相機對多個平面的尺寸進行測量,那么就需要進行多個標定。如圖3所示,用一臺相機測量Ф5和Ф10尺寸,如果相機從上面拍攝,由于兩個平面距離相機的遠近不同,所以兩個平面在所拍攝的圖像中對應的比例也不同,如果對Ф10的平面進行標定,則Ф5的平面上測量的結果就不準確,同樣,對Ф5的平面進行標定,則Ф10的平面上測量的結果就不準確。Sherlock可以對同一相機產生兩個多個虛擬相機(stakeout),在該圖中可以利用兩個虛擬相機(stakeout),分別對Ф5的平面和Ф10的平面進行標定,這樣就能得到精確的結果。
4 虛擬相機的一個標定
在機器視覺中,有時候多個虛擬相機(stakeout)可能只對一個平面進行測量或檢測,或者多個相機所測量或檢測的物體與相機的CCD平面距離相等,此時如果對每一個虛擬相機都進行標定將很耗時,這種情況下,Sherlock可以只對一個虛擬相機進行標定,以使多個虛擬相機可利用同一標定進行測量或檢測。
u=(ax+by+c)/(hx+hy+I),
υ=(dx+ey+?)/(gx+hy+i)
(x,y)是攝像機或物體平面上的坐標,(u,v)是另一個平面上的轉換坐標。A,b,c,d,e,f,g,h和I是透視畸變算法從內部取出用于轉換每個要求點的轉換參數。
2 相機標定的步驟
圖2是標定主頁圖。相機標定的一般步驟如下:
(1)建立一個子程序(Insert | Subroutine)。
(2)在策略窗口樹的頂部雙擊子程序圖標,Sherlock顯示子程序編輯對話框。
(3)編輯子程序,選取“Execute During Calibration”點擊OK按鈕保存并且退出。
(4)創建一個虛擬相機(Insert | Subroutine)。
(5)通過使用菜單命令(Stakeout | Options)顯示默認的相機坐標柵格,在坐標柵格下方選擇“Lines",然后點擊OK按鈕退出對話框。
圖2
(6)將一個已知尺寸的零件作為標定塊放置在相機的視野范圍內。
(7)在虛擬相機窗口,選擇零件上的四個特征點作為標定點。
(8)在子程序中插入公式(fromular)。編輯公式,將四個特征點的坐標作為公式的輸入值,選擇標定(calibrate)函數。
(9)編輯標定(calibrate)函數的參數,輸入四個標定點的實際坐標值。
(10)再次選擇菜單命令(Investigate | Calibrate),將出現新的坐標柵格。可以在Stakeout | Options中改變柵格大小。
(11)對其他零件進行測量,測量的結果將是實際測量值。
3 單個相機多個標定
Sherlock的標定在同一個測量平面內是有效的。如果用一臺相機對多個平面的尺寸進行測量,那么就需要進行多個標定。如圖3所示,用一臺相機測量Ф5和Ф10尺寸,如果相機從上面拍攝,由于兩個平面距離相機的遠近不同,所以兩個平面在所拍攝的圖像中對應的比例也不同,如果對Ф10的平面進行標定,則Ф5的平面上測量的結果就不準確,同樣,對Ф5的平面進行標定,則Ф10的平面上測量的結果就不準確。Sherlock可以對同一相機產生兩個多個虛擬相機(stakeout),在該圖中可以利用兩個虛擬相機(stakeout),分別對Ф5的平面和Ф10的平面進行標定,這樣就能得到精確的結果。
4 虛擬相機的一個標定
在機器視覺中,有時候多個虛擬相機(stakeout)可能只對一個平面進行測量或檢測,或者多個相機所測量或檢測的物體與相機的CCD平面距離相等,此時如果對每一個虛擬相機都進行標定將很耗時,這種情況下,Sherlock可以只對一個虛擬相機進行標定,以使多個虛擬相機可利用同一標定進行測量或檢測。