亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? adjustment.cpp

?? 用于相機標定的程序。工業測量的一個重要手段是近景攝影測量。其中要用到相機標定。
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// Adjustment.cpp: implementation of the Adjustment class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Adjustment.h"
#include "math.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Adjustment::Adjustment()
{

}

Adjustment::~Adjustment()
{

}

/*輔助矩陣計算函數,不用考慮*/
void Adjustment::sss(double fg[2],double cs[2])
  { double r,d;
    if ((fabs(fg[0])+fabs(fg[1]))==0.0)
      { cs[0]=1.0; cs[1]=0.0; d=0.0;}
    else 
      { d=sqrt(fg[0]*fg[0]+fg[1]*fg[1]);
        if (fabs(fg[0])>fabs(fg[1]))
          { d=fabs(d);
            if (fg[0]<0.0) d=-d;
          }
        if (fabs(fg[1])>=fabs(fg[0]))
          { d=fabs(d);
            if (fg[1]<0.0) d=-d;
          }
        cs[0]=fg[0]/d; cs[1]=fg[1]/d;
      }
    r=1.0;
    if (fabs(fg[0])>fabs(fg[1])) r=cs[1];
    else
      if (cs[0]!=0.0) r=1.0/cs[0];
    fg[0]=d; fg[1]=r;
    return;
  }
/*輔助矩陣計算函數,不用考慮*/
void Adjustment::ppp(double *a,double *e,double *s,double *v,int m,int n)  
  { int i,j,p,q;
    double d;
    if (m>=n) i=n;
    else i=m;
    for (j=1; j<=i-1; j++)
      { a[(j-1)*n+j-1]=s[j-1];
        a[(j-1)*n+j]=e[j-1];
      }
    a[(i-1)*n+i-1]=s[i-1];
    if (m<n) a[(i-1)*n+i]=e[i-1];
    for (i=1; i<=n-1; i++)
    for (j=i+1; j<=n; j++)
      { p=(i-1)*n+j-1; q=(j-1)*n+i-1;
        d=v[p]; v[p]=v[q]; v[q]=d;
      }
    return;
  }
/*輔助矩陣計算函數,不用考慮*/
int Adjustment::bmuav(double *a,int m,int n,double *u,double *v,double eps,int ka)
  { int i,j,k,l,it,ll,kk,ix,iy,mm,nn,iz,m1,ks;
    double d,dd,t,sm,sm1,em1,sk,ek,b,c,shh,fg[2],cs[2];
    double *s,*e,*w;
    void ppp();
    void sss();
    s=(double *)(malloc(ka*sizeof(double)));
    e=(double *)(malloc(ka*sizeof(double)));
    w=(double *)(malloc(ka*sizeof(double)));
    it=60; k=n;
    if (m-1<n) k=m-1;
    l=m;
    if (n-2<m) l=n-2;
    if (l<0) l=0;
    ll=k;
    if (l>k) ll=l;
    if (ll>=1)
      { for (kk=1; kk<=ll; kk++)
          { if (kk<=k)
              { d=0.0;
                for (i=kk; i<=m; i++)
                  { ix=(i-1)*n+kk-1; d=d+a[ix]*a[ix];}
                s[kk-1]=sqrt(d);
                if (s[kk-1]!=0.0)
                  { ix=(kk-1)*n+kk-1;
                    if (a[ix]!=0.0)
                      { s[kk-1]=fabs(s[kk-1]);
                        if (a[ix]<0.0) s[kk-1]=-s[kk-1];
                      }
                    for (i=kk; i<=m; i++)
                      { iy=(i-1)*n+kk-1;
                        a[iy]=a[iy]/s[kk-1];
                      }
                    a[ix]=1.0+a[ix];
                  }
                s[kk-1]=-s[kk-1];
              }
            if (n>=kk+1)
              { for (j=kk+1; j<=n; j++)
                  { if ((kk<=k)&&(s[kk-1]!=0.0))
                      { d=0.0;
                        for (i=kk; i<=m; i++)
                          { ix=(i-1)*n+kk-1;
                            iy=(i-1)*n+j-1;
                            d=d+a[ix]*a[iy];
                          }
                        d=-d/a[(kk-1)*n+kk-1];
                        for (i=kk; i<=m; i++)
                          { ix=(i-1)*n+j-1;
                            iy=(i-1)*n+kk-1;
                            a[ix]=a[ix]+d*a[iy];
                          }
                      }
                    e[j-1]=a[(kk-1)*n+j-1];
                  }
              }
            if (kk<=k)
              { for (i=kk; i<=m; i++)
                  { ix=(i-1)*m+kk-1; iy=(i-1)*n+kk-1;
                    u[ix]=a[iy];
                  }
              }
            if (kk<=l)
              { d=0.0;
                for (i=kk+1; i<=n; i++)
                  d=d+e[i-1]*e[i-1];
                e[kk-1]=sqrt(d);
                if (e[kk-1]!=0.0)
                  { if (e[kk]!=0.0)
                      { e[kk-1]=fabs(e[kk-1]);
                        if (e[kk]<0.0) e[kk-1]=-e[kk-1];
                      }
                    for (i=kk+1; i<=n; i++)
                      e[i-1]=e[i-1]/e[kk-1];
                    e[kk]=1.0+e[kk];
                  }
                e[kk-1]=-e[kk-1];
                if ((kk+1<=m)&&(e[kk-1]!=0.0))
                  { for (i=kk+1; i<=m; i++) w[i-1]=0.0;
                    for (j=kk+1; j<=n; j++)
                      for (i=kk+1; i<=m; i++)
                        w[i-1]=w[i-1]+e[j-1]*a[(i-1)*n+j-1];
                    for (j=kk+1; j<=n; j++)
                      for (i=kk+1; i<=m; i++)
                        { ix=(i-1)*n+j-1;
                          a[ix]=a[ix]-w[i-1]*e[j-1]/e[kk];
                        }
                  }
                for (i=kk+1; i<=n; i++)
                  v[(i-1)*n+kk-1]=e[i-1];
              }
          }
      }
    mm=n;
    if (m+1<n) mm=m+1;
    if (k<n) s[k]=a[k*n+k];
    if (m<mm) s[mm-1]=0.0;
    if (l+1<mm) e[l]=a[l*n+mm-1];
    e[mm-1]=0.0;
    nn=m;
    if (m>n) nn=n;
    if (nn>=k+1)
      { for (j=k+1; j<=nn; j++)
          { for (i=1; i<=m; i++)
              u[(i-1)*m+j-1]=0.0;
            u[(j-1)*m+j-1]=1.0;
          }
      }
    if (k>=1)
      { for (ll=1; ll<=k; ll++)
          { kk=k-ll+1; iz=(kk-1)*m+kk-1;
            if (s[kk-1]!=0.0)
              { if (nn>=kk+1)
                  for (j=kk+1; j<=nn; j++)
                    { d=0.0;
                      for (i=kk; i<=m; i++)
                        { ix=(i-1)*m+kk-1;
                          iy=(i-1)*m+j-1;
                          d=d+u[ix]*u[iy]/u[iz];
                        }
                      d=-d;
                      for (i=kk; i<=m; i++)
                        { ix=(i-1)*m+j-1;
                          iy=(i-1)*m+kk-1;
                          u[ix]=u[ix]+d*u[iy];
                        }
                    }
                  for (i=kk; i<=m; i++)
                    { ix=(i-1)*m+kk-1; u[ix]=-u[ix];}
                  u[iz]=1.0+u[iz];
                  if (kk-1>=1)
                    for (i=1; i<=kk-1; i++)
                      u[(i-1)*m+kk-1]=0.0;
              }
            else
              { for (i=1; i<=m; i++)
                  u[(i-1)*m+kk-1]=0.0;
                u[(kk-1)*m+kk-1]=1.0;
              }
          }
      }
    for (ll=1; ll<=n; ll++)
      { kk=n-ll+1; iz=kk*n+kk-1;
        if ((kk<=l)&&(e[kk-1]!=0.0))
          { for (j=kk+1; j<=n; j++)
              { d=0.0;
                for (i=kk+1; i<=n; i++)
                  { ix=(i-1)*n+kk-1; iy=(i-1)*n+j-1;
                    d=d+v[ix]*v[iy]/v[iz];
                  }
                d=-d;
                for (i=kk+1; i<=n; i++)
                  { ix=(i-1)*n+j-1; iy=(i-1)*n+kk-1;
                    v[ix]=v[ix]+d*v[iy];
                  }
              }
          }
        for (i=1; i<=n; i++)
          v[(i-1)*n+kk-1]=0.0;
        v[iz-n]=1.0;
      }
    for (i=1; i<=m; i++)
    for (j=1; j<=n; j++)
      a[(i-1)*n+j-1]=0.0;
    m1=mm; it=60;
    while (1==1)
      { if (mm==0)
          { Adjustment::ppp(a,e,s,v,m,n);
            free(s); free(e); free(w); return(1);
          }
        if (it==0)
          { Adjustment::ppp(a,e,s,v,m,n);
            free(s); free(e); free(w); return(-1);
          }
        kk=mm-1;
	while ((kk!=0)&&(fabs(e[kk-1])!=0.0))
          { d=fabs(s[kk-1])+fabs(s[kk]);
            dd=fabs(e[kk-1]);
            if (dd>eps*d) kk=kk-1;
            else e[kk-1]=0.0;
          }
        if (kk==mm-1)
          { kk=kk+1;
            if (s[kk-1]<0.0)
              { s[kk-1]=-s[kk-1];
                for (i=1; i<=n; i++)
                  { ix=(i-1)*n+kk-1; v[ix]=-v[ix];}
              }
            while ((kk!=m1)&&(s[kk-1]<s[kk]))
              { d=s[kk-1]; s[kk-1]=s[kk]; s[kk]=d;
                if (kk<n)
                  for (i=1; i<=n; i++)
                    { ix=(i-1)*n+kk-1; iy=(i-1)*n+kk;
                      d=v[ix]; v[ix]=v[iy]; v[iy]=d;
                    }
                if (kk<m)
                  for (i=1; i<=m; i++)
                    { ix=(i-1)*m+kk-1; iy=(i-1)*m+kk;
                      d=u[ix]; u[ix]=u[iy]; u[iy]=d;
                    }
                kk=kk+1;
              }
            it=60;
            mm=mm-1;
          }
        else
          { ks=mm;
            while ((ks>kk)&&(fabs(s[ks-1])!=0.0))
              { d=0.0;
                if (ks!=mm) d=d+fabs(e[ks-1]);
                if (ks!=kk+1) d=d+fabs(e[ks-2]);
                dd=fabs(s[ks-1]);
                if (dd>eps*d) ks=ks-1;
                else s[ks-1]=0.0;
              }
            if (ks==kk)
              { kk=kk+1;
                d=fabs(s[mm-1]);
                t=fabs(s[mm-2]);
                if (t>d) d=t;
                t=fabs(e[mm-2]);
                if (t>d) d=t;
                t=fabs(s[kk-1]);
                if (t>d) d=t;
                t=fabs(e[kk-1]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到不卡免费一区二区| 国产精品18久久久久久久网站| 国产亚洲一区二区三区在线观看| 91精品福利在线一区二区三区 | 亚洲品质自拍视频网站| 久久精品视频一区| 国产午夜亚洲精品理论片色戒| 亚洲欧美日韩一区二区三区在线观看| 国产欧美日韩精品a在线观看| 日韩美一区二区三区| 91精品国产91久久综合桃花| 日韩一区二区免费视频| 欧美成人video| 久久久综合激的五月天| 欧美国产精品v| 亚洲色图制服诱惑 | 午夜电影网亚洲视频| 日韩av一区二区三区| 狠狠色伊人亚洲综合成人| 国产剧情一区二区| 91免费国产在线观看| 欧美日韩国产另类不卡| 精品欧美黑人一区二区三区| 日本一区二区成人| 亚洲一区二区视频在线观看| 奇米色一区二区三区四区| 国产一区二区三区免费看| 99久精品国产| 欧美一区二区三区啪啪| 国产精品对白交换视频| 午夜久久久久久| 成人高清视频免费观看| 91精品免费在线| 欧美国产97人人爽人人喊| 亚洲福利国产精品| 国产高清不卡二三区| 欧美日韩日日摸| 中文欧美字幕免费| 三级精品在线观看| 成人激情av网| 精品久久久久久无| 亚洲小说欧美激情另类| 国产高清视频一区| 欧美一区二区三区视频免费| 国产精品不卡一区二区三区| 日韩 欧美一区二区三区| 成人app在线观看| 日韩欧美第一区| 亚洲精品你懂的| 国产精品一区二区果冻传媒| 欧美精品 国产精品| 中文字幕一区二区三区视频| 开心九九激情九九欧美日韩精美视频电影 | 精品一区二区三区不卡| 91精彩视频在线| 国产精品久久久久久久久久免费看| 首页国产欧美日韩丝袜| 一本到不卡免费一区二区| 国产精品视频一二三| 成人黄色综合网站| 国产亚洲精品超碰| 国产成人自拍网| 欧美日韩一区二区在线视频| 久久福利资源站| 麻豆一区二区三| 欧美老肥妇做.爰bbww| 亚洲在线中文字幕| 国产精一区二区三区| 国产麻豆视频精品| 久久精品亚洲一区二区三区浴池| 成人av在线资源| 日本视频一区二区| 国产精品免费网站在线观看| 欧美日韩高清一区二区不卡| 精品亚洲成av人在线观看| 一区二区三区在线视频免费观看| 精品久久久三级丝袜| 91免费国产视频网站| 另类调教123区| 一区二区在线观看视频| 欧美国产日韩在线观看| 欧美一区二区三区婷婷月色| 色婷婷亚洲综合| 国产成人免费视频精品含羞草妖精 | 热久久国产精品| 1024成人网| 久久精品人人做人人爽人人| 欧美日韩免费视频| 99麻豆久久久国产精品免费 | 日韩视频一区二区三区在线播放| av亚洲精华国产精华精华| 久久精品久久99精品久久| 亚洲黄色小视频| 成人欧美一区二区三区视频网页| 精品国产伦一区二区三区观看体验| 欧洲激情一区二区| av不卡免费在线观看| 国产大片一区二区| 精品一区二区国语对白| 视频一区欧美精品| 亚洲成人自拍偷拍| 一区二区三区在线看| 亚洲日本丝袜连裤袜办公室| 国产精品美女久久久久久| 久久久三级国产网站| 欧美大胆一级视频| 日韩精品最新网址| 日韩三级视频在线看| 91麻豆精品国产91久久久久久久久| 欧美亚洲高清一区| 精品视频免费看| 欧美日韩一级二级三级| 欧美午夜在线一二页| 欧美日韩一区在线观看| 欧美日韩一区二区在线视频| 欧美影视一区在线| 欧美男女性生活在线直播观看| 欧美亚洲国产一区在线观看网站| 91丨porny丨首页| 欧洲视频一区二区| 欧美精品色一区二区三区| 欧美色偷偷大香| 7777精品久久久大香线蕉| 国产精品二区一区二区aⅴ污介绍| 国产精品免费视频一区| 亚洲图片你懂的| 一区二区三区久久| 日韩高清不卡一区二区三区| 免费亚洲电影在线| 国产大片一区二区| 91亚洲精品久久久蜜桃网站| 色欧美乱欧美15图片| 欧美日本国产视频| 日韩精品一区二区三区三区免费| 久久伊99综合婷婷久久伊| 欧美激情一区二区在线| 亚洲精品v日韩精品| 天天色综合天天| 国产一区二区三区四区五区入口 | 91亚洲国产成人精品一区二区三 | 日韩欧美成人激情| 国产网站一区二区三区| 亚洲欧洲综合另类在线| 五月婷婷激情综合| 国产丶欧美丶日本不卡视频| 97久久人人超碰| 欧美一区二区三区不卡| 日本一区二区久久| 天天av天天翘天天综合网 | 亚洲高清免费在线| 国产精品亚洲一区二区三区在线| 99麻豆久久久国产精品免费| 91精品国产欧美日韩| 国产精品你懂的| 美女视频一区二区| 91在线国产福利| 久久亚洲精品小早川怜子| 亚洲综合丝袜美腿| 国产精品一色哟哟哟| 欧美电影一区二区| ...xxx性欧美| 久久国产综合精品| 欧美午夜精品久久久| 国产亚洲精品资源在线26u| 亚洲v精品v日韩v欧美v专区| 成人毛片老司机大片| 欧美大黄免费观看| 亚洲成人在线免费| eeuss鲁片一区二区三区在线看| 日韩女优av电影| 一级中文字幕一区二区| 国产成人精品综合在线观看| 欧美一区三区二区| 亚洲一级片在线观看| 99久免费精品视频在线观看| 精品国产乱码久久久久久1区2区| 亚洲一区二区不卡免费| www.日本不卡| 中文成人综合网| 国产精品一区在线观看乱码| 日韩午夜在线观看视频| 午夜欧美电影在线观看| 色婷婷一区二区| 亚洲视频在线一区二区| 日韩精品专区在线| 一区二区三区在线看| 一本在线高清不卡dvd| 欧美国产禁国产网站cc| 国产制服丝袜一区| 精品国产亚洲在线| 午夜电影网一区| 欧美精品欧美精品系列| 亚洲成人精品一区二区| 欧美在线制服丝袜| 亚洲一区在线电影| 欧美日韩视频专区在线播放| 一区二区三区资源| 精品视频123区在线观看| 亚洲一区二区四区蜜桃| 欧美三级视频在线|