(華南師范大學物理與電信工程學院 廣東 廣州 510006)
基于相機標定的物體輪廓實際大小測量
李曉穎周衛(wèi)星
(華南師范大學物理與電信工程學院廣東廣州510006)
利用相機坐標標定相機隨意位置拍攝的圖片,獲得內(nèi)外參數(shù)并矯正圖片;用canny邊緣檢測算子對圖像做邊緣檢測,用輪廓檢測獲取輪廓的坐標,并按順序依次連接各輪廓點得到完整的輪廓;計算圖片中顯示的任意兩點的坐標距離與實際大小對比,獲得誤差。
相機標定;物體輪廓
將圖片中的信息按照等比例的放大,得到實際物體的大小和每個物體所在的坐標是工業(yè)加工中不可缺少的一部分。得到實際物體大小的方法很多,本文提出的是先對相機做標定,得到相機的內(nèi)外參,利用內(nèi)外參矯正發(fā)生畸變的圖像。然后利用相機坐標與像素坐標之間的等比例關系,如實放大。接著調用canny函數(shù)和findcontours函數(shù)獲得輪廓點和輪廓點順序。
(一)四大坐標的轉換關系
相機攝影是一個從世界坐標到相機坐標到圖像物理坐標再到圖像像素坐標的過程。
1.世界坐標系轉為相機坐標系(剛體變換)
對于空間中任意一點都可以用世界坐標表示為P=[XW,YW,ZW]T,該點在相機中表示為P1=[XC,YC,ZC]T,從世界坐標變換為相機坐標時,需要考慮該點的旋轉R矩陣和平移T矩陣。
2.相機坐標系轉為圖像物理坐標系(透視投影)
圖2 相機坐標系轉為圖像物理坐標系
圖3 圖像物理坐標系轉換為圖像像素坐標系
以O點為原點建立相機坐標系,其中在相機坐標系中的P1=[XC,YC,ZC]T被光線投影到圖像平面上為P2=[X,Y,f]T,其中圖像平面垂直于主光軸z,f為相機的焦距。
3.圖像物理坐標系轉換為圖像像素坐標系
圖像物理坐標系轉換為圖像像素坐標系,只是坐標軸的轉移,對應圖像像素坐標系上的點為P3=[u,v,1]T。
其中,A為相機內(nèi)參,[r1 r2 r3]和t為相機外參。
(二)相機標定和圖像矯正
1.計算相機內(nèi)參矩陣
有兩種畸變對投影圖像影響較大:徑向畸變和切向畸變。這兩個畸變系數(shù)將影響相機的內(nèi)參計算。
2.計算外參矩陣
3.圖片矯正
在拍照的過程中有些圖片會出現(xiàn)畸變,相機標定時會產(chǎn)生相機的畸變系數(shù)。對于發(fā)生畸變的圖片需要做矯正處理。首先計算畸變映射,然后將求得的映射重新應用到圖片上。完成圖片的矯正處理。
(一)canny邊緣檢測算子檢測邊緣
1.圖像平滑
Canny方法采用二維高斯函數(shù)對圖像進行平滑,去除圖像中多余的噪聲:
其中,σ是高斯濾波器參數(shù)。σ較小的濾波器定位精度高,但信噪比低;σ較大,則反之。
2.梯度幅值和方向的計算
Canny算子利用一階微分算子來計算平滑后圖像I各點處的梯度幅值和梯度方向,從而獲得相應的梯度幅值圖像G和梯度方向圖像θ。其中,點(i,j)處2個方向的偏導數(shù)Gx(i,j)和Gy(i,j)分別為:
Gx(i,j)=[I(i,j+1)-I(i,j)+I(i+1,j+1)-I(i+1,j)]/2
Gy(i,j)=[I(i,j)-I(i+1,j)+I(i,j+1)-I(i+1,j+1)]/2
則點(i,j)處的梯度幅值和梯度方向分別為:
3.非極大值抑制
Canny算子在梯度幅值圖像G中以點(i,j)為中心3×3的鄰域內(nèi)沿梯度方向θ(i,j)進行插值,如果點(i,j)處的梯度幅值G(i,j)大于θ(i,j)方向上與其相鄰的2個插值,則將點(i,j)標記為候選邊緣點,從而得到候選邊緣圖像。
4.檢測和連接邊緣
Canny算子采用雙閾值法從候選邊緣點中檢測和連接得到最終的邊緣,大于高閾值的部分認為是圖像中的邊界,低閾值將高閾值丟失的邊緣連接起來,使得邊緣完整、封閉。小于低閾值部分就認為不是圖像中的閾值。
(二)獲取物體輪廓
檢測出圖像邊緣后,尋找每個圖像邊緣所在的輪廓,檢測每個邊緣的輪廓連續(xù)性,將輪廓按等級排列,并將輪廓中的點也按順序排列。
在之前的圖片矯正處理之后,以相機標定時的第一個角點為原點,以繪制角點的途徑為X軸和Y軸建立之間坐標系。讀取原點所在角點所在棋盤格的對角角點的像素坐標,該點像素坐標減去原點所在角點的像素坐標,并用棋盤格的實際大小除以這兩點的像素坐標差值得到新建坐標系的單位長度。
在獲取的輪廓坐標中用新建立的世界坐標代替,獲得每個點的世界坐標。將每個輪廓點按照存儲在累加器里的順序一個個描繪、連線。
在圖像中讀取任意點之間的坐標并計算它們之間的距離,與實際的物體大小比較,計算誤差。
本文提出的方法完成了相機標定,解決了世界坐標與像素坐標的轉換問題,對發(fā)生畸變的圖片進行矯正,并且獲得圖像物體輪廓和輪廓點順序。可以在工廠加工時直接讀取輪廓點的順序,依次對圖像輪廓有序移動和加工。
[1]劉振中,傅莉.攝像機標定研究[J].沈陽航空工業(yè)學院學報,2010(1):43-47.
[2]賈洪濤,朱元昌.攝像機圖像畸變糾正技術[J].電子測量與儀器學報,2006,1(3):46-49.
[3]張宏林.精通Visual C++數(shù)字圖像處理典型算法及實現(xiàn)[M].北京:人民郵電出版社,2008.
[4]萬力,易昂,傅明.一種基于Canny算法的邊緣提取改善算法[J].計算機技術與自動化,2003,22(1):24-26.
李曉穎,女,福建泉州人,碩士研究生,主要從事圖像處理方面的研究工作;周衛(wèi)星,教授,主要從事信號處理方面的研究工作。