01攝影測量中的像平面坐標系與影像內定向及C代碼

摘要:本文在介紹攝影測量中的基礎坐標系“像平面坐標系”的基礎上,詳細說明瞭在已知框標坐標的情況下,內定向參數的計算方法,給出瞭C語言實現版的偽代碼。

通過影像測量三維世界是攝影測量學科的基本目的之一。為瞭描述三維世界的幾何結構,人們采用瞭三維世界坐標系,為瞭描述地物在影像上的位置,同樣需要在影像上定義一個坐標系,這就是像平面坐標系。那麼如何計算影像上某個像素在像平面坐標系上的坐標呢,這就是影像內定向。

為瞭讓大傢清楚地瞭解內定向的由來以及計算過程,我們需要從數字攝影測量的發展過程講起。

在數字攝影測量發展之初,大傢目前所熟知的可量測數碼相機(DMC、UCD、SWDC等)和具備量測功能的傢用數碼相機(Sony、Nikon等)並未出現在攝影測量領域,那時人們將用作攝影測量的航空相機稱作航攝儀,RC30相機是當時使用范圍最廣的航攝儀之一。

RC30航攝儀

這類航攝儀價格昂貴,機械和光學結構嚴謹,成像底片是膠片,經顯影、定影等一系列處理,得到攝影負片,再經曬印得到攝影測量所需的正片。為瞭在計算機中對攝影測量過程進行數字化,人們還需要采用數字掃描儀將正片做數字化處理,內定向正是由此開始的。

相信大傢都在掃描以上掃描過自己的照片吧?同樣地,在把正片放置到數字掃描儀上時,雖然會很小地將照片放置得橫平豎直,但是不可能放置的嚴格水平。建立數字化影像行列數和像平面坐標系之間的關系,是實現數字攝影測量的先決條件,航攝儀在設計上做瞭充分準備。下圖是一張由RC30相機拍攝得到的經數字化處理的影像。

RC30數字化航空影像

從圖中可以看出,航攝儀拍攝的影像四角分別有一個標記,稱作框標。位於四角的框標叫做角框標,兩角框標連線之間的叫做邊框標。像平面坐標系就是在框標的基礎上定義的。一種定義方法是取對角框標連線的交點作為坐標系原點,以指向飛行方向的角平分線為x軸正方向,y軸向上。另一種定義方法則是取邊、角框標的算術平均值對應處為坐標系原點,兩坐標軸方向與方法一相同。

經過上面的分析,我們可以看出,傳統航攝儀影像的內定向由兩大步驟組成,第一步是在數字影像中測量框的位置,用框標所在的行列數描述;第二步是利用航攝儀檢定報告中記錄的框標坐標,解求內定向參數,得到像素坐標和像平面坐標之間的相互轉換時所需的旋轉矩陣。

框標在數字化影像中的行列數,既可以手工測量,也可以采用模板匹配的方法獲得。為瞭減小文章篇幅,保持內容的緊湊性,關於模板匹配的內容將在下一篇文章的介紹。本文假定框標坐標已經量測得到,下面給出像素坐標和像平面坐標之間的相互轉換時所用的旋轉矩陣的計算方法,並采用C語言偽代碼予以描述。

void Ior(double *pFiducalSX, double *pFiducalSY, //框標坐標,從相機檢定報告中獲得

double *pFiducalIX, double *pFiducalIY, //框標在數字化影像中的列數和行數

int nFiducalNum, //框標數量

double fScanSize, //影像的掃描分辨率,單位mm

double fPrincipalOffsetSX, double fPrincipalOffsetSY,//主點偏移量,單位mm,從相機檢定報告中獲得

double* pMatrixItoS, double* pMatrixStoI,//像素坐標到像平面坐標的轉換矩陣,像平面坐標到像素坐標的轉換矩陣

double* pPrincipalSX, double* pPrincipalSY, //恒為0

double* pPrincipalIX, double* pPrincipalIY, //像主點在數字化影像中的列數和行數

double *pFiducalExpSX, double *pFiducalExpSY, //可忽略

double *pSDSX, double *pSDSY, //可忽略

double *pRMS)//可忽略

{

//計算坐標重心化參數

double fMeanSX=0.0,fMeanSY=0.0,fMeanIX=0.0,fMeanIY=0.0;

for(int i=0;i<nFiducalNum;i++)

{

fMeanSX+=pFiducalSX[i];

fMeanSY+=pFiducalSY[i];

fMeanIX+=pFiducalIX[i];

fMeanIY+=pFiducalIY[i];

}

fMeanSX/=nFiducalNum;

fMeanSY/=nFiducalNum;

fMeanIX/=nFiducalNum;

fMeanIY/=nFiducalNum;

//計算正反內定向矩陣

double SXSX=0.0,SYSY=0.0,SXSY=0.0,SXIX=0.0,SYIX=0.0,SXIY=0.0,SYIY=0.0;

for(i=0;i<nFiducalNum;i++)

{

double dSX=pFiducalSX[i]-fMeanSX;

double dSY=pFiducalSY[i]-fMeanSY;

double dIX=(pFiducalIX[i]-fMeanIX)*fScanSize;

double dIY=(pFiducalIY[i]-fMeanIY)*fScanSize;

SXSX+=dSX*dSX;

SYSY+=dSY*dSY;

SXSY+=dSX*dSY;

SXIX+=dSX*dIX;

SYIX+=dSY*dIX;

SXIY+=dSX*dIY;

SYIY+=dSY*dIY;

}

double d=1.0/(SXSX*SYSY-SXSY*SXSY);

double a1=(SXIX*SYSY-SYIX*SXSY)*d;

double a2=(SYIX*SXSX-SXIX*SXSY)*d;

double b1=(SXIY*SYSY-SYIY*SXSY)*d;

double b2=(SYIY*SXSX-SXIY*SXSY)*d;

pMatrixStoI[0]=a1/fScanSize;

pMatrixStoI[1]=a2/fScanSize;

pMatrixStoI[2]=b1/fScanSize;

pMatrixStoI[3]=b2/fScanSize;

d=1.0/(a1*b2-a2*b1);

pMatrixItoS[0]=b2*d*fScanSize;

pMatrixItoS[1]=(-a2*d)*fScanSize;

pMatrixItoS[2]=(-b1*d)*fScanSize;

pMatrixItoS[3]=a1*d*fScanSize;

//計算像主點

*pPrincipalSX=0.0; *pPrincipalSY=0.0;

*pPrincipalIX=fMeanIX+pMatrixStoI[0]*(fPrincipalOffsetSX-fMeanSX)+pMatrixStoI[1]*(fPrincipalOffsetSY-fMeanSY);

*pPrincipalIY=fMeanIY+pMatrixStoI[2]*(fPrincipalOffsetSX-fMeanSX)+pMatrixStoI[3]*(fPrincipalOffsetSY-fMeanSY);

//統計誤差

*pSDSX=0.0;

*pSDSY=0.0;

for(i=0;i<nFiducalNum;i++)

{

double dIX=pFiducalIX[i]-*pPrincipalIX;

double dIY=pFiducalIY[i]-*pPrincipalIY;

pFiducalExpSX[i]=pMatrixItoS[0]*dIX+pMatrixItoS[1]*dIY+fPrincipalOffsetSX;

pFiducalExpSY[i]=pMatrixItoS[2]*dIX+pMatrixItoS[3]*dIY+fPrincipalOffsetSY;

double dSX=pFiducalExpSX[i]-pFiducalSX[i];

double dSY=pFiducalExpSY[i]-pFiducalSY[i];

*pSDSX+=dSX*dSX;

*pSDSY+=dSY*dSY;

}

*pRMS=(double)sqrt((*pSDSX+*pSDSY)/nFiducalNum);

*pSDSX=(double)sqrt(*pSDSX/nFiducalNum);

*pSDSY=(double)sqrt(*pSDSY/nFiducalNum);

}

後記:數字化影像中框標坐標的自動測量方法,即模板匹配,將在後續文章中詳細論述,數碼影像的內定向方法也將一並予以介紹。

发表回复

相关推荐

Chiari畸形(小腦扁桃體下疝)

歷史發展:1883年,Cleland最先發現1例菱腦畸形1891年,Chiari最先報道這種畸形,並分為三型。1894年,Arnold報道瞭1例病人,...

· 44秒前

關於存儲臍帶、胎盤幹細胞的真實內幕,你想知道的都在這裡!

近年來,越來越多的人意識到:臍帶及胎盤組織中富含幹細胞,儲存幹細胞就是儲存生命的種子。將臍帶、胎盤中的幹細胞儲存起來...

· 59秒前

妄图复出的张哲瀚上演疯批大戏,还想拉龚俊下水?

大家好。 好久没和大家聊聊明星了, 这几天有个艺人让我很上头, 那就是告别娱乐圈接近300天, 如今装疯卖傻的劣迹艺人 ...

· 2分钟前

芍药是什么?带你走进芍药的前世今生!

嗨,花痴!欢迎来到花派千卉谷! “芍药,犹绰约也,美好貌。此草花容绰约,故以为名。” ——《本草纲目》 花派,绽放生活美 ...

· 4分钟前

芯片的分类

一、从芯片种类划分 (1)计算芯片(大脑):如CPU,GPU,FPGA,MCU,AI等都用作计算分析的,和人体大脑类似。 (2)存储芯 ...

· 11分钟前