(lunwen)數(shù)碼相機定位的數(shù)學模型_第1頁
(lunwen)數(shù)碼相機定位的數(shù)學模型_第2頁
(lunwen)數(shù)碼相機定位的數(shù)學模型_第3頁
(lunwen)數(shù)碼相機定位的數(shù)學模型_第4頁
(lunwen)數(shù)碼相機定位的數(shù)學模型_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、【精品文檔】如有侵權(quán),請聯(lián)系網(wǎng)站刪除,僅供學習與交流(lunwen)數(shù)碼相機定位的數(shù)學模型.精品文檔.數(shù)碼相機定位的數(shù)學模型摘 要隨著數(shù)碼相機定位在各領域的廣泛應用,對相關(guān)問題機器視覺的研究也成為熱點。因此建立一個精度較高,穩(wěn)定性好的數(shù)碼相機定位的數(shù)學模型,具有很好的現(xiàn)實意義。問題1要求給出確定靶標上圓的圓心在給定相機像平面的像坐標的算法,問題2利用問題1的模型對給定數(shù)據(jù)求解。為此,首先建立了四個空間直角坐標系,在MATLAB中把圖3的數(shù)字信息提取出來,主要是五個橢圓的邊緣點的信息;同時為了便于運算,通過坐標變換將計算機圖像坐標變換為圖像坐標;并用提取的圖像邊界坐標擬合出5個橢圓的方程,利用“

2、曲線切線的投影仍與曲線的投影相切,而且切點的投影仍為投影的切點”這一引理,提取出靶標上圓及其像上的公切點的坐標作為特征點,利用RAC兩步法標定過程和最小二乘法建立了計算世界坐標系到相機坐標系的旋轉(zhuǎn)變換矩陣和平移向量及徑向畸變系數(shù)的算法。利用16個公切點作為特征點,通過Matalb編程求得靶標上圓的圓心在文中給定相機像平面的五個坐標(單位:mm):A(-49.7132, 51.1289 417.1958),B(-23.3475, 49.1539 417.1958),C(33.8194, 44.8716, 417.1958), D(18.8173,-31.5798, 417.1958),E(-59

3、.7830, -31.1754, 417.1958)。問題3的解決分為兩步:一是通過對模型計算出的焦距及畸變系數(shù)及上面五個坐標值的分析得出模型的精度較高的結(jié)論;二是采用改變特征點數(shù)的方法或利用“,三個標靶的中心的像應在一條直線上”驗證模型的穩(wěn)定性。問題4采用二目立體視覺模型確定了給出兩部固定相機相對位置的數(shù)學模型和方法。本文建立的算法可操作性強,精度較高,穩(wěn)定性好,對解決類似問題的計算有一定的推廣價值。關(guān)鍵詞:擬合橢圓 特征點提取 RAC兩步法 坐標旋轉(zhuǎn)矩陣公切點數(shù)碼相機定位的數(shù)學模型一問題的提出數(shù)碼相機定位的數(shù)學模型來源于2008年全國大學生數(shù)學建模競賽的A題。一般地在物平面上畫若干個圓(稱

4、為靶標),它們的圓心就是幾何的點了,它們的像一般會變形為橢圓,從靶標上的這些圓的像中把圓心的像精確地找到,標定就可實現(xiàn)?,F(xiàn)設計靶標如下,取1個邊長為100mm的正方形,分別以四個頂點(對應為A、C、D、E)為圓心,12mm為半徑作圓。以AC邊上距離A點30mm處的B為圓心,12mm為半徑作圓,如圖1所示,用一位置固定的數(shù)碼相機攝得其像,如圖2所示。圖1 靶標示意圖圖2 靶標的像(1) 建立數(shù)學模型和算法以確定靶標上圓的圓心在該相機像平面的像坐標, 這里坐標系原點取在該相機的光學中心,x-y平面平行于像平面;(2) 對由圖2、圖3分別給出的靶標及其像,計算靶標上圓的圓心在像平面上的像坐標, 該相

5、機的像距(即光學中心到像平面的距離)是1577個像素單位(1毫米約為3.78個像素單位),相機分辨率為1024×768;(3) 設計一種方法檢驗你們的模型,并對方法的精度和穩(wěn)定性進行討論;(4) 建立用此靶標給出兩部固定相機相對位置的數(shù)學模型和方法。二模型的假設及符號說明1模型的假設(1) 假設題目中給出的圖3的尺寸是實際物理尺寸;(2) 圖像坐標系的坐標原點是圖3的中心,稱為主心坐標;(3) 相機不需做任何的運動;(4) 標定物為共面點,將靶標所在的面作為世界坐標系的坐標平面;(5) 相機的有效焦距不變。2. 符號說明(1) :表示世界坐標系到相機坐標系旋轉(zhuǎn)變換矩陣,;(2) :表

6、示世界坐標系到相機坐標系的平移向量,;(3) :表示相機的有效焦距,;(4) :表示世界坐標系下物點的坐標;(5) :表示圖像坐標系下物點有徑向畸變的實際像坐標;(6) :表示圖像坐標系下物點的針孔成像的理想坐標;(7) :表示相機坐標系下物點的坐標;(8) :主點坐標,即圖像坐標系下坐標原點的像素坐標;(9) :表示計算機坐標系下的像的像素坐標。(10) :表示徑向畸變系數(shù)。(11) 、:每個像素在軸與軸方向上的物理尺寸。三問題的分析為了確定靶標上圓的圓心在文中給定相機像平面的像坐標,要把圖3中的數(shù)據(jù)信息提取出來。由于圖3中的數(shù)據(jù)信息是以像素為單位的,為了與圖2的毫米單位一致,同時便于運算,

7、通過坐標變換,將計算機圖像坐標變換為圖像坐標,并用圖像邊界坐標的信息擬合出5個橢圓的方程,從而可以求出橢圓的幾何中心。1坐標系的建立計算過程中需要建立如下的四個坐標系,如圖4所示。(1) 相機坐標系:原點定義在相機的光學中心,軸與光軸重合;(2) 圖像坐標系:原點(主點)定義為相機光軸與圖像平面的交點,軸和軸與,軸平行,為相機的有效焦距;(3) 計算機圖像坐標系:原點位于CCD圖像平面的左上角,軸和軸分別與軸和軸平行。、分別表示該像素在數(shù)組中的列數(shù)和行數(shù),且以像素為單位。在計算機圖像坐標系中,主點坐標記為,假設主點坐標是圖像坐標的中點,本文中可表示為。(4) 世界坐標系:原點位于靶標所在正方形

8、的中心,和軸分別平行、(軸的正向為向量的正方向),因此物點的坐標可表示為。OO2圖4 考慮畸變的徑向攝像機模型圖設為物點在小孔成像的理想圖像坐標中的像點坐標,是由透鏡徑向畸變引起的物點實際圖像點,考慮畸變的徑向攝像機模型圖,如圖4所示。一般情況下,CCD鏡頭畸變主要為一階徑向畸變,在這里我們只考慮一階徑向畸變。用一個二階多項式近似:式中為畸變系數(shù),為畸變坐標。2提取圖像數(shù)據(jù)(1) 提取圖3并以.bmp格式保存。(2) 在MATLAB中用imread命令讀入該圖片并轉(zhuǎn)換成RGB圖像矩陣。(3) 使用rgb2gray和im2bw命令將上述圖像矩陣轉(zhuǎn)化成二值圖像矩陣。(4) 使用bwlabel命令對

9、二值圖像矩陣進行分塊標識(每個橢圓域標記為一塊,共5塊)。(5) 對每一塊橢圓域用edge命令提取邊緣點,并求出這些邊緣點在計算機圖像坐標系下的坐標。3計算機圖像坐標與圖像坐標的轉(zhuǎn)換如圖4所示,計算機圖像坐標系以像素為單位,為便于計算,需將其轉(zhuǎn)換為圖像坐標系。設坐標系原點在坐標系中坐標為,每個像素在軸與軸方向上的物理尺寸為、,則圖像中任意一個像素在兩個坐標系下的坐標有如下關(guān)系:(1)用齊次坐標與矩陣形成,將式(1)表示為逆關(guān)系可寫成(2)已知相機分辨率為,若題中給定圖3尺寸為實際物理尺寸,則考慮到題中給出,為方便計算,取,即1毫米均表示3.78個像素單位。設取在靶標像平面的中心位置,根據(jù)式(2

10、),可將像平面五個橢圓邊緣點坐標變換到圖像坐標系下的坐標。4橢圓擬合1橢圓擬合是對已提取的圖3的五個橢圓邊緣點的數(shù)據(jù),進行曲線擬合。設橢圓曲線的一般表達式為其橢圓的中心點可由式(3)求得:,(3)為了用數(shù)據(jù)作曲線擬合,首先設,利用線性最小二乘法擬合,用MATLAB編程得到五個擬合橢圓曲線方程系數(shù)如表1所示,橢圓A的擬合曲線如圖5所示。表1 擬合橢圓曲線方程系數(shù)abcdegA1.8731×10-4-1.7016×10-51.9356×10-40.0196-0.02071.0000B3.2762×10-4-4.5683×10-53.2859

11、5;10-40.0177-0.03361.0000C3.8868×10-4-9.8457×10-53.6314×10-4-0.0219-0.02951.0000D6.2735×10-4-2.3887×10-56.9264×10-4-0.03110.04821.0000E2.3416×10-4-5.3764×10-52.8754×10-40.02650.01471.0000圖5橢圓A的擬合曲線將橢圓方程標準化,由式(3)得到A、B、C、D、E五個靶標的像的幾何中心點的坐標如表2所示。表2 五個靶標的像的幾何

12、中心點的坐標ABCDE-49.9705-23.493533.886818.7601-60.092651.402449.430345.1492-31.5326-31.2101Z=1577/3.78 單位:mm5用橢圓的公切線提取特征點(1) 引理:曲線切線的投影仍與曲線的投影相切,而且切點的投影仍為投影的切點。3(2)兩橢圓公切線的計算設像平面上任意兩個橢圓(基于圖像坐標系)的曲線方程為:(4)(5)其公切線方程為:(6)將式(6)代入式(4)并整理得:(7)其中,根據(jù)切線的判別法則:,得:(8)其中,同理,將式(6)代入式(5),可得與式(8)形式相同的結(jié)果:(9)其中,錯誤求解(8)、(9)

13、聯(lián)立的方程組,可得出四組,即確立了任意兩個橢圓的四條公切線。對于題中給出的靶標,我們僅提取出如圖6所示的四條外圍公切線的投影(如圖7所示),并計算出八個公切點的坐標。圖7對應的MATLAB求解如圖8所示。圖7EDCBA(8)(16)(7)(15)(14)(13)(6)(5)(11)(3)(12)(4)(1)(2)(9)(10)ABCCYwXwDEOw圖6圖8圖6對應的MATLAB求解四條外圍公切線的投影方程分別為:: y=8.8393x+590.9984: y=-0.0840x+58.1670: y=4.8613x-166.4789: y=0.0040x-40.3090四條內(nèi)圍公切線的投影方程

14、分別為:: y=7.5705x+345.7467: y=-0.0650x+37.2174: y=5.2918x-83.1902: y=-0.0121x-22.577716個公切點及其對應像的坐標如表3所示。表316個公切點及其對應像的坐標序號(1)(2)(3)(4)原坐標(-50,-62)(-62,-50)(-62,50)(-50,62)像坐標(-61.1197,-40.5540)(-70.3928,-31.2242)(-60.9633,52.1263)(-48.5424,62.2443)序號(5)(6)(7)(8)原坐標(50,62)(62,50)(62,-50)(50,-62)像坐標(35

15、.9167,55.1501)(43.3636,44.3244)(27.7327,-31.6618)(17.1397,-40.2403)序號(9)(10)(11)(12)原坐標(-38,-50)(-50,-38)(-50,38)(-38,50)像坐標(-49.8120,-31.3566)(-58.8831,-21.8669)(-51.1894,40.5449)(-39.0025,50.4772)序號(13)(14)(15)(16)原坐標(38,50)(50,38)(50,-38)(38,-50)像坐標(24.3757,45.8002)(32.0257,35.1357)(20.5297,-22.8

16、256)(9.7596,-31.5445)四、模型的建立與求解1問題(1)的求解算法為了數(shù)學模型和算法以確定靶標上圓的圓心在該相機像平面的像坐標,采用zhang提出的RAC兩步法標定過程,由于此方法考慮了鏡頭畸變,使精度有了一定的提高。此方法采用徑向排列約束關(guān)系求出世界的坐標系到相機坐標系得旋轉(zhuǎn)矩陣和平移向量,然后求得利用從而求出世界的坐標系與相機坐標系之間的對應關(guān)系,同時又求得鏡頭畸變系數(shù)。設表示在已建立的世界坐標系下物點的坐標,表示物點在相機坐標系下的像坐標。則世界坐標系到相機坐標系之間的變換關(guān)系為:(10)其中,表示旋轉(zhuǎn)矩陣,表示平移向量。下面采用徑向約束的兩步法(Two-stage)進

17、行計算:第一步:計算和1)過渡參數(shù)的求解利用徑向排列約束原理及公式(10)得到:(11)由于,式(11)可表示為(12)即:(13)若對每一個特征點來說,知道了其空間坐標和相應于圖像坐標系下坐標,就有一個方程(13)與之對應,取5個以上的點,式(12)即成為超定方程組,利用最小二乘法求解得到和。利用最小二乘法求解式(13)的具體方法:取個物點,和個對應的圖像坐標點,得超定方程組為:其中則的最小二乘估計為。記:。2) 的求解求出上述過度參數(shù)后,就可以根據(jù)R正交性求出的大小。當參數(shù),不兩兩同時為0時:B=否則為其余兩個參數(shù)的平方和的倒數(shù)。3)判斷的符號在運用徑向平行約束時,包括兩平行向量同向和反向

18、的兩種情況,故的符號有兩種可能??刹捎孟铝蟹椒ㄅ袛啵合仍O為正,由過渡參數(shù)求出,由此將標定點再投影到圖像平面上。計算出對應得圖像坐標,比較兩者的符號,如果與同號,那么為正;否則為負,則上面求出的其余外部參數(shù)都作相應的改變。4)根據(jù)R的正交性,計算R的其余參數(shù)(如果的符號為正,則在前加負號)如果下面計算的為負號,則的符號與上面相反。4)過渡焦距,過渡徑向畸變系數(shù)和過渡平移分量的求解由于經(jīng)整理可得如下含未知數(shù),得線性方程組:(14)式中,。用最小二乘法聯(lián)合解(14)這個線形方程組,即可得到,的解。進一步判斷的符號,如果為負,則將反號。進一步解得,其余參數(shù)符號按上面3)所述作相應得改變。至此,與,已經(jīng)

19、求出。第二步:計算平移分量和徑向畸變系數(shù)由于,與已知,根據(jù)(14)式可以得到:(15)式中,。用最小二乘法聯(lián)合解(15)這個線形方程組,即可得到,的解。以上即為兩步法的完整的求解過程。這樣通過式(10)得到物點在相機坐標系下坐標,再利用關(guān)系式(16)得到物點的像在相機坐標系下坐標,問題(1)得到解決。2問題(2)的求解(1) 利用上述方法計算靶標上圓的圓心在像平面上的像坐標在前面利用橢圓的公切線,已經(jīng)找出的8個公切點的世界坐標和圖像坐標如下:序號(1)(2)(3)(4)原坐標(-50,-62)(-62,-50)(-62,50)(-50,62)像坐標(-61.1197,-40.5540)(-70

20、.3928,-31.2242)(-60.9633,52.1263)(-48.5424,62.2443)序號(5)(6)(7)(8)原坐標(50,62)(62,50)(62,-50)(50,-62)像坐標(35.9167,55.1501)(43.3636,44.3244)(27.7327,-31.6618)(17.1397,-40.2403)把它們作為特征點代入公式(13)、(15)得到超定方程組,利用MATLAB編程求解超定方程組得到 和最后利用公式 和,得到五個靶標的中心點的像在相機坐標系下坐標如表4所示。 表4 利用8個特征點求得五個靶標的中心點的像在相機坐標系下坐標ABCDEX-49.8

21、498-23.400333.940518.9014-59.9297Y51.286149.299744.9934-31.6823-31.2713Z=1577/3.78 單位:mm(2) 計算結(jié)果的分析 的值:通過模型(14)計算的過渡值為,而實際的給出的,值的相對誤差:,說明了計算方法的可靠性。 的值:通過模型(14)計算徑向畸變系數(shù)的值為,說明在此問題的求解過程中可以忽略徑向畸變帶來的誤差。 靶標中心點的像的坐標:通過對表2和表4的比較可以看出,靶標的像的幾何中心和靶標的像的中心坐標并不一致,但誤差并不是很大,說明如果要求精度不高時,也可以用靶標的像的幾何中心代替靶標的像的中心。3問題(3):

22、模型的檢驗 通過上面的計算結(jié)果的分析可以看出算法的精度較高。下面用以下兩種方法檢驗上述模型的穩(wěn)定性(1) 利用改變特征點數(shù)的方法驗證模型的穩(wěn)定性在計算靶標上圓的圓心在像平面上的像坐標時,前面利用8個公切點作為特征點計算了結(jié)果?,F(xiàn)在加大和減少特征點的個數(shù)計算模型,如果加大和減少特征點對計算結(jié)果的影響不大說明,我們建立的模型是穩(wěn)定的。通過對靶標上的的16個外公切點作為特征點,計算靶標上圓的圓心在像平面上的像坐標及相應的參數(shù),。 和表5 利用16個特征點求得五個靶標的中心點的像在相機坐標系下坐標ABCDEX-49.7132-23.347533.819418.8173-59.7830Y51.12894

23、9.153944.8716-31.5798-31.1754Z=1577/3.78 單位:mm計算結(jié)果與利用8個特征點求得的結(jié)果比較更精確,但差別并不大,說明我們的算法的穩(wěn)定性。(2) 利用成像原理檢驗引理:一條空間直線的投影到任意一個不與之垂直的平面上像仍是一條直線。已知,三個標靶的中心在一條直線上,從而其像的三個中心坐標也應該在一條直線上。若利用我們的模型求得的結(jié)果,的中心在一條直線或近似一條直線,說明模型較穩(wěn)定。檢驗方法:取中心的三個坐標,擬合直線, 很小,說明算法穩(wěn)定。算例:利用16個特征點,根據(jù)模型(13)求得的,E中心的像坐標如表5所示,即有: (-49.7132, 51.1289)

24、, (-23.3475, 49.1539), (33.8194, 44.8716)的擬合方程為:,殘差。從圖9中可以看出三點幾乎構(gòu)成一條直線。同理對特征點數(shù)為8的情形,擬合直線如圖10所示。對應的的擬合方程為:,殘差。圖9對16個特征點的情形三點擬合的直線圖10對8個特征點的情形三點擬合的直線4問題(4)的模型(1) 二目立體視覺模型二目立體測試系統(tǒng)利用兩臺不同角度和位置安放的相機來模擬人眼的功能,獲取像點與相機的三維空間中物體的幾何信息。未來利用二目立體測量系統(tǒng)獲得三維幾何信息,需要是兩個相機在一個統(tǒng)一的坐標系下工作,因此不僅要得到單個相機的相機模型,還需要精確確定兩個相機的相互位置關(guān)系,即

25、建立精確的立體視覺模型。 立體視覺模型以單相機模型為基礎來表示兩個相機的位置幾何關(guān)系。如果左相機的外部參數(shù)為,右相機的外部參數(shù)為,則兩個相機之間的幾何關(guān)系表示如下(以左相機為基準):(2) 雙目視覺特征點三維重建算法利用基于視差原理的雙目視覺測量原理。對一般情況進行考慮,如圖11所示,假定左相機位于世界坐標系的原點處且無旋轉(zhuǎn),圖像坐標系為,焦距為,右相機坐標系為,圖像坐標系為,焦距為,根據(jù)相機透視變換模型有與之間可通過空間轉(zhuǎn)換矩陣表示為:,P圖11與之間的旋轉(zhuǎn)矩陣和原點之間的平移變量矢量。對于坐標系中的空間點,兩相機像平面點的對應關(guān)系為:由此,空間點三維坐標可表示為: 當已知兩相機焦距、及空間

26、低昂在左右相機中的圖像坐標時,通過標定出的旋轉(zhuǎn)矩陣和平移矢量就可以得到被測物體點的三維空間坐標。五、模型的評價及推廣優(yōu)點:算法簡單,適合用計算機編寫程序計算,誤差積累少,精度較高,穩(wěn)定性好,算法可操作性強。缺點:對算法精度的分析只是利用數(shù)值分析得直觀方法,缺少理論依據(jù),有待進一步分析。鑒于以上特點,本文建立的模型對解決類似問題的計算有一定的推廣價值。參考文獻1 張廣軍,機器視覺,北京:科學出版社,2005;2 譚曉軍、余志、李軍,一種改進的立體攝像機標定方法,測繪學報,第35卷第2期,2006.5;3 4 蘇金明,王永利,MATLAB圖形圖像,北京:電子工業(yè)出版社,2005.11;5 黃宣國,

27、空間解析幾何與微分幾何,上海:復旦大學出版社,2003.96 胡培成等,一種改進的基于圓環(huán)點的攝像機自標定方法,光電工程,第34卷12期;7 鄒鳳嬌,蘇顯渝,李美菊,基于共面點的攝像機線性標定法,光電工程,第32卷第4期,2005.48 何文章等,數(shù)學建模與實驗,哈爾濱:哈爾濱工程大學出版社,2002附錄主程序,文件名:QiuYuanXin_Over.mclc;clear;tic %啟動計時器I=imread('Xiang2.bmp');J=rgb2gray(I);K=im2bw(J,100/255);K=K;I1,num1=bwlabel(K);clear I Jfor nu

28、m=1:num1 %依次對塊進行處理r,c = find(I1=num); %尋找塊內(nèi)點的坐標n1,m1=size(r);n,m=size(K);M=zeros(n,m);for i=1:n1 M(r(i),c(i)=1; %構(gòu)建單個橢圓的圖像endM1=edge(M,'sobel'); %尋找邊界線%imshow(M1)y,x=find(M1=1);y=(abs(y-n)-n/2)/3.78; %坐標變換x=(x-m/2)/3.78;xishu,bi,r,rint,s=NiHeTuoYuan(x,y); %橢圓擬合s_tuoyuan(num,:)=s;%figure,rcop

29、lot(r,rint) %存儲擬合方程的系數(shù)%系數(shù)順序:ax2+bxy+cy2+dx+ey+f(=1)=0XS(num,:)=xishu;xc,yc=TuoYuanZhonxin(xishu); %求橢圓中心點if num=1 %存儲擬合橢圓的中心點坐標 TZhongXinx=xc; TZhongXiny=yc;else len1=length(TZhongXinx); TZhongXinx(len1+1)=xc; TZhongXiny(len1+1)=yc;endrp=abs(max(x)-min(x); %繪制擬合橢圓x1=(min(x)-rp/3):0.5:(max(x)+rp/3);%

30、確定橫軸的范圍和步長xn,ynu,ynd=NHTYBian(xishu,x1);if num=1 %存儲各橢圓邊的擬合點坐標 NiheBianx=xn;NiheBianyu=ynu;NiheBianyd=ynd;else len1=length(NiheBianx); len2=length(xn); for g=(len1+1):(len2+len1) NiheBianx(g)=xn(g-len1); NiheBianyu(g)=ynu(g-len1); NiheBianyd(g)=ynd(g-len1); endendfigure,plot(x,y,'+',xc,yc,&#

31、39;+',xn,ynu,'o',xn,ynd,'o');axis('equal')clear rp xc yc r c n1 m2 n m M M1 xn ynu ynd len1 len2endclear I J K I1 rint s %清理內(nèi)存disp('擬合橢圓方程的系數(shù)')XSdisp('擬合橢圓的中心點坐標')TZhongXin=TZhongXinx',TZhongXiny' %求橢圓A,B,C幾何中心的擬合直線 xcc=TZhongXinx;ycc=TZhongXiny;x=

32、xcc(2) xcc(3) xcc(5); y=ycc(2) ycc(3) ycc(5);n=length(y);X=x',ones(n,1);Y=y'nhxs,bi,r,rint,sz=regress(Y,X);disp('橢圓A,B,C幾何中心的擬合直線系數(shù)')nhxssz%figure,rcoplot(r,rint)%y1=nhxs(1).*x+nhxs(2);%figure,plot(x,y,'+',x,y1)clear xcc ycc x y n X Y bi r rinmn1=QeiXian(XS(1,:),XS(2,:);mn2=Q

33、eiXian(XS(2,:),XS(5,:);mn3=QeiXian(XS(5,:),XS(4,:);mn4=QeiXian(XS(1,:),XS(4,:);WaiGongQeiXian=mn1(1,:);mn2(3,:);mn3(2,:);mn4(2,:)X1,Y1=Qeidian(XS(1,:),mn4(2,:);mn1(1,:);X2,Y2=Qeidian(XS(2,:),mn1(1,:);mn2(3,:);X5,Y5=Qeidian(XS(5,:),mn2(3,:);mn3(2,:);X4,Y4=Qeidian(XS(4,:),mn3(2,:);mn4(2,:);Q1=X1(:,1),

34、Y1(:,1);Q2=X2(:,1),Y2(:,1);Q3=X5(:,1),Y5(:,1);Q4=X4(:,1),Y4(:,1);WaiQeiDian=Q1;Q2;Q3;Q4;WaiQeiDian=real(WaiQeiDian)NeiGongQeiXian=mn1(2,:);mn2(2,:);mn3(1,:);mn4(3,:)X1,Y1=Qeidian(XS(1,:),mn1(2,:);mn4(3,:);X2,Y2=Qeidian(XS(2,:),mn2(2,:);mn1(2,:);X5,Y5=Qeidian(XS(5,:),mn3(1,:);mn2(2,:);X4,Y4=Qeidian(X

35、S(4,:),mn4(3,:);mn3(1,:);Q1=X1(:,1),Y1(:,1);Q2=X2(:,1),Y2(:,1);Q3=X5(:,1),Y5(:,1);Q4=X4(:,1),Y4(:,1);NeiQeiDian=Q1;Q2;Q3;Q4;NeiQeiDian=real(NeiQeiDian)clear Q1 Q2 Q3 Q4 X1 X2 X3 X4 X5 Y1 Y2 Y3 Y4 Y5X=WaiQeiDian(:,1);Y=WaiQeiDian(:,2); %求直線作圖邊界xmin=min(X); xmax=max(X);ymin=min(Y);ymax=max(Y);lix=xmin

36、:0.1:xmax;liy=ymin:0.1:ymax;clear X Y%外切線。XJ=WaiGongQeiXian;lw1s=line(XJ(1,1),XJ(1,2),liy,2);lw2h=line(XJ(2,1),XJ(2,2),lix,1);lw3s=line(XJ(3,1),XJ(3,2),liy,2);lw4h=line(XJ(4,1),XJ(4,2),lix,1);%內(nèi)切線。XJ=NeiGongQeiXian;ln1s=line(XJ(1,1),XJ(1,2),liy,2);ln2h=line(XJ(2,1),XJ(2,2),lix,1);ln3s=line(XJ(3,1),X

37、J(3,2),liy,2);ln4h=line(XJ(4,1),XJ(4,2),lix,1);clear XJfigure,plot(NiheBianx,NiheBianyu,'+',NiheBianx,. NiheBianyd,'+',lw1s,liy,lw3s,liy,ln1s,liy,. ln3s,liy,lix,lw2h,lix,lw4h,lix,ln2h,lix,ln4h,. NeiQeiDian(:,1),NeiQeiDian(:,2),'o',. WaiQeiDian(:,1),WaiQeiDian(:,2),'o'

38、)axis('equal');clear lw1s lw2h lw3s lw4h ln1s ln2h ln3s ln4hdisp('基于8個特征點的相機內(nèi)外部參數(shù)與圓中心像點求解')%順序為 %求相機內(nèi)外參數(shù)% 2(A) 3(B) 5(C)% 1(E) 4(D)Xf1=WaiQeiDian(:,1);Yf1=WaiQeiDian(:,2);%Word為世界坐標系下的坐標,Z坐標取0Word1=dlmread('Yuanxindata8.m');xw=Word1(:,1);yw=Word1(:,2);fb=1577/3.78R1 T1 f1 k11

39、 k1=TwoStage(Xf1,Yf1,xw,yw,fb)fc1=abs(fb-f1)*100/fbclear xw ywW1=-50 -50 0;-50 50 0;-20 50 0;50 -50 0;50 50 0;image1=WordToImage(R1,T1,fb,W1)ximage=image1(:,1);yimage=image1(:,2);x=ximage(2) ximage(3) ximage(5);y=yimage(2) yimage(3) yimage(5);n=length(y);X=x',ones(n,1);Y=y'pl1,bi,r,rint,s1=r

40、egress(Y,X);pl1,s1%figure,rcoplot(r,rint)y1=pl1(1).*x+pl1(2)figure,plot(x,y,'+',x,y1,'LineWidth',2),axis('equal')disp('基于16個特征點的相機內(nèi)外部參數(shù)與圓中心像點求解')Xf2=WaiQeiDian(:,1);NeiQeiDian(:,1);Yf2=WaiQeiDian(:,2);NeiQeiDian(:,2);%Word為世界坐標系下的坐標,Z坐標取0Word2=dlmread('Yuanxindata

41、16.m');xw=Word2(:,1);yw=Word2(:,2);R2 T2 f2 k21 k2=TwoStage(Xf2,Yf2,xw,yw,fb)fc2=abs(fb-f2)*100/fbimage2=WordToImage(R2,T2,fb,W1)ximage=image2(:,1);yimage=image2(:,2);x=ximage(2) ximage(3) ximage(5);y=yimage(2) yimage(3) yimage(5);n=length(y);X=x',ones(n,1);Y=y'pl2,bi,r,rint,s2=regress(Y

42、,X);pl2,s2%figure,rcoplot(r,rint)y1=pl2(1).*x+pl2(2)figure,plot(x,y,'+',x,y1,'LineWidth',2),axis('equal')clear bi r rint X Y x y y1 ximage yimage i lix liy m1 n . num num1 x1 xh xH yH xw ywtoc %程序運行完畢,關(guān)閉計時器,并顯示程序運行時間函數(shù)程序,文件名:NiHeTuoYuan.mfunction xishu,bi,r,rint,s=NiHeTuoYuan

43、(X,Y)%橢圓擬合n=length(Y); Xnew=X.2 X.*Y Y.2 X Y;Ynew=-ones(n,1);B,bi,r,rint,s=regress(Ynew,Xnew);%系數(shù)順序:ax2+bxy+cy2+dx+ey+1=0xishu=B',1;函數(shù)程序,文件名:TuoYuanZhonxin.mfunction X,Y=TuoYuanZhonxin(xishu)%求橢圓中心點坐標a=xishu(1);b=xishu(2);c=xishu(3);d=xishu(4);e=xishu(5);temp=b.*b-4*a.*c;X=(2*c*d-b*e)/temp; %橢圓中

44、心點橫坐標Y=(2*a*e-b*d)/temp; %橢圓中心點縱坐標函數(shù)程序,文件名:NHTYBian.mfunction xn,ynu,ynd=NHTYBian(xishu,x)a=xishu(1);b=xishu(2);c=xishu(3);d=xishu(4);e=xishu(5);longx=length(x);j=1;for i=1:longx pd=(b*x(i)+e)2-4*c*(a*x(i)2+d*x(i)+1); if pd>=0 ynu(j)=(-(b*x(i)+e)+sqrt(pd)/(2*c); ynd(j)=(-(b*x(i)+e)-sqrt(pd)/(2*c)

45、; xn(j)=x(i);j=j+1; endend函數(shù)程序,文件名:QeiXian r.mfunction mn=QeiXian(k,l)s1=k(5)2-4*k(3)*k(6);s2=4*k(3)*k(4)-2*k(2)*k(5);s3=k(2)2-4*k(1)*k(3);s4=2*k(4)*k(5)-4*k(2)*k(6);s5=2*k(2)*k(4)-4*k(1)*k(5);s6=k(4)2-4*k(1)*k(6);q1=l(5)2-4*l(3)*l(6);q2=4*l(3)*l(4)-2*l(2)*l(5);q3=l(2)2-4*l(1)*l(3);q4=2*l(4)*l(5)-4*

46、l(2)*l(6);q5=2*l(2)*l(4)-4*l(1)*l(5);q6=l(4)2-4*l(1)*l(6);syms m0 n0fun1=s1*m02+s2*m0*n0+s3*n02+s4*m0+s5*n0+s6;fun2=q1*m02+q2*m0*n0+q3*n02+q4*m0+q5*n0+q6;M0,N0=solve(fun1,fun2,m0,n0);mn1=M0,N0;mn=double(mn1);函數(shù)程序,文件名:Qeidian.mfunction X,Y=Qeidian(k,mn)syms x yline,row=size(mn);for i=1:linefun1=mn(i,

47、1)*x+mn(i,2)-y;fun2=k(1)*x2+k(2)*x*y+k(3)*y2+k(4)*x+k(5)*y+k(6);X1,Y1=solve(fun1,fun2,x,y);line1,row1=size(X1);X(i,:)=double(X1');Y(i,:)=double(Y1');end函數(shù)程序,文件名:TwoStage.mfunction R,T,f,k1,k=TwoStage(Xd,Yd,Xw,Yw,fb)C=Yd.*Xw Yd.*Yw Yd -Xd.*Xw -Xd.*Yw;Y=Xd;X=CY;l1=X(1);l2=X(2);l3=X(3);l4=X(4);l5=X(5);clear Y X C%求+tyC=l1,l2;l4,l5;A=l12+l22+l42+l52;B=(l1*l5-l2*l4)2;if rank(C)=2 ty2=(A-sqrt(A2-4*B)/(2*B);else z=C(abs(C)>0); ty2=1.0/(z(1)2+

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論