橢圓擬合算法實(shí)現(xiàn)_第1頁
橢圓擬合算法實(shí)現(xiàn)_第2頁
橢圓擬合算法實(shí)現(xiàn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、橢圓的目標(biāo)函數(shù):F(A,B,C,D,E) = XiGeMa(xiA2 + A*xiyi+B*yiA2+C*xi+D*yi+E)A2 分別對 A,B,C,D,E 求一階偏導(dǎo) 并令其等于 0 得到線性方程組:|A1 B1 C1 D1 E1| |A| = |resul1|A2 B2 C2 D2 E2 | |B| = |resul2|A3 B3 C3D3 E3 | |C|=|resul3| |A4 B4 C4 D4 E4 | |D| = |resul4| |A5 B5 C5D5 E5| |E|=|resul5|求得 A,B,C,D,E.橢圓的五個(gè)參數(shù):center.x = (2*B*C - A*D)

2、/(A*A-4*B);center.y = (2*D-A*D)/(A*A-4*B);fenzi = 2*(A*C*D-B*C*C-D*D+4*E*B-A*A*E);fenmu =(A*A-4*B)* (B- sqrt(A*A+ (1-B) * (1-B) ) +1);femmu2 =(A*A-4*B)* (B+ sqrt(A*A+ (1-B) * (1-B) ) +1);long =sqrt(fabs(fenzi/fenmu);short =sqrt(fabs(fenzi/femmu2);*center.xtheta = atan(sqrt(center.x *center.x -center

3、.y*center.y*B)/(center.x *B-center.y*center.y)+0.0001)*180/cv_pi;vector<double> getEllipsepar(vector<CvPoint> vec_point) vector<double> vec_result;double x3y1 = 0,x1y3= 0,x2y2= 0,yyy4= 0, xxx3= 0,xxx2= 0,x2y1= 0,yyy3= 0,x1y2= 0 ,yyy2= 0,x1y1= 0,xxx1= 0,yyy1= 0;int N = vec_point.siz

4、e();for (int m_i = 0;m_i < N ;+m_i ) double xi = vec_pointm_i.x double yi = vec_pointm_i.y; x3y1 += xi*xi*xi*yi ;x1y3+= xi*yi*yi*yi;x2y2+= xi*xi*yi*yi; ;yyy4 +=yi*yi*yi*yi; xxx3+= xi*xi*xi ;xxx2+= xi*xi ;x2y1 += xi*xi*yi;x1y2 += xi*yi*yi; yyy2 += yi*yi; x1y1 += xi*yi;xxx1 += xi;/CvMat* MaCvMat* M

5、dCvMat* Mb /yyy1 += yi; yyy3 += yi*yi*yi;long double resul1 = -(x3y1); long double resul2 = -(x2y2); long double resul3 = -(xxx3); long double resul4 = -(x2y1); long double resul5 = -(xxx2);long double B1x1y3,C1 =x2y1,D1 =x1y2,E1= x1y1,A1 =x2y2;long double B2yyy4,C2 =x1y2,D2 =yyy3,E2= yyy2,A2 =x1y3;

6、long double B3x1y2,C3 =xxx2,D3 =x1y1,E3= xxx1,A3 =x2y1;long double B4yyy3,C4 =x1y1,D4 =yyy2,E4 = yyy1,A4 =x1y2;long double B5yyy2,C5 =xxx1,D5 =yyy1,E5=N,A5= x1y1;= cvCreateMat(5,5,CV_64FC1);= cvCreateMat(5,1,CV_64FC1);= cvCreateMat(5,1,CV_64FC1);cvmSet(Mb,0,0,resul1);cvmSet(Mb,1,0,resul2);cvmSet(Mb,

7、2,0,resul3);cvmSet(Mb,3,0,resul4);cvmSet(Mb,4,0,resul5);cvmSet(Ma,0,0,A1);cvmSet(Ma,0,1,B1);cvmSet(Ma,0,2,C1);cvmSet(Ma,0,3,D1);cvmSet(Ma,0,4,E1);cvmSet(Ma,1,0,A2);cvmSet(Ma,1,1,B2); cvmSet(Ma,1,2,C2); cvmSet(Ma,1,3,D2); cvmSet(Ma,1,4,E2);cvmSet(Ma,2,0,A3);cvmSet(Ma,2,1,B3); cvmSet(Ma,2,2,C3); cvmSe

8、t(Ma,2,3,D3); cvmSet(Ma,2,4,E3);cvmSet(Ma,3,0,A4);cvmSet(Ma,3,1,B4);cvmSet(Ma,3,2,C4);cvmSet(Ma,3,3,D4);cvmSet(Ma,3,4,E4);cvmSet(Ma,4,0,A5);cvmSet(Ma,4,1,B5); cvmSet(Ma,4,2,C5); cvmSet(Ma,4,3,D5); cvmSet(Ma,4,4,E5);cvSolve(Ma, Mb, Md);long double A = cvmGet(Md,0,0); long double B = cvmGet(Md,1,0); l

9、ong double C = cvmGet(Md,2,0); long double D = cvmGet(Md,3,0); long double E = cvmGet(Md,4,0);double XC = (2*B*C - A*D) /(A*A-4*B); double YC =(2*D-A*D)/(A*A-4*B);long double fenzi = 2*(A*C*D-B*C*C-D*D+4*E*B-A*A*E);long double fenmu =(A*A-4*B) * (B- sqrt(A*A+ (1-B) * (1-B) ) +1); long double femmu2 =(A*A-4*B) * (B+ sqrt(A*A+ (1-B) * (1-B) ) +1); double XA =sqrt(fabs(fenzi/fenmu);double XB =sqrt(fabs(fenzi/femmu2);double Xtheta =atan(sqrt(XA*XA-XB*XB*B)/(XA*XA*B-XB*XB)+0.0001)*180/3.1415926

溫馨提示

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

最新文檔

評論

0/150

提交評論