




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上計(jì)算機(jī)視覺(jué)攝像機(jī)標(biāo)定實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱(chēng) 基于OpenCV的攝像機(jī)標(biāo)定實(shí)驗(yàn)項(xiàng)目 1、 學(xué)會(huì)使用OpenCV2、利用OpenCV進(jìn)行攝像機(jī)標(biāo)定,編程實(shí)現(xiàn),給出實(shí)驗(yàn)結(jié)果及其分析。實(shí)驗(yàn)儀器設(shè)備電腦+Visual Studio 2010+openCV.2.4.8。實(shí)驗(yàn)原理1、 理論知識(shí)如圖,(u、v)表示以像素為單位的圖像坐標(biāo)系的坐標(biāo),(X、Y)表示以mm為單位的圖像坐標(biāo)系的坐標(biāo),在X、Y坐標(biāo)系中,原點(diǎn)O1定義在攝像機(jī)光軸與圖像平面的交點(diǎn),該點(diǎn)一般位于圖像中心,但是由于制造原因,很多情況下會(huì)有偏移,若O1在U、V坐標(biāo)系中坐標(biāo)為(u0,v0),每一個(gè)像素在X軸與Y軸方向上的無(wú)力尺寸
2、為dx、dy,則圖像任意一個(gè)像素在兩個(gè)坐標(biāo)系下的坐標(biāo)有如下關(guān)系: 如圖,Oc點(diǎn)為攝像機(jī)光心,Xc軸和Yc軸與圖像的X軸與Y軸平行,Zc軸為攝像機(jī)光軸,它與圖像平面垂直。光軸與圖像平面的交點(diǎn),極為圖像坐標(biāo)系的原點(diǎn),由點(diǎn)Oc與Xc、Yc、Zc軸組成的直角坐標(biāo)系稱(chēng)為攝像機(jī)坐標(biāo)系,OOc為攝像機(jī)焦距:由于攝像機(jī)可以安放在環(huán)境中任意位置,所以在環(huán)境中選擇一個(gè)基準(zhǔn)坐標(biāo)系來(lái)描述攝像機(jī)位置,并用它描述環(huán)境中任何物體的位置,該坐標(biāo)系為世界坐標(biāo)系。它有Xw、Yw和Zw軸組成,攝像機(jī)坐標(biāo)系與世界坐標(biāo)系之間的關(guān)系可以用旋轉(zhuǎn)矩陣與平移向量t來(lái)描述。 總體來(lái)說(shuō),世界坐標(biāo)系到圖像坐標(biāo)系的關(guān)系可總結(jié)如下:
3、; 攝像頭成像幾何關(guān)系,其中Oc 點(diǎn)稱(chēng)為攝像頭(透鏡)的光心,Xc 軸和Yc 軸與圖像的x軸和Y軸平行,Zc 軸為攝像頭的光軸,它與圖像平面垂直。光軸與圖像平面的交點(diǎn)O1 ,即為圖像坐標(biāo)系的原點(diǎn)。由點(diǎn)Oc 與Xc 、Yc 、Zc 軸組成的坐標(biāo)系稱(chēng)為攝像頭坐標(biāo)系,Oc O1 的距離為攝像頭焦距,用f表示。 又稱(chēng)為線(xiàn)性攝像機(jī)模型,任何空間點(diǎn)M在圖像中的投影位置m,為光心Oc與M的連線(xiàn)OcM與圖像平面的交點(diǎn)。此時(shí)有比例關(guān)系如下: 將上面的世界坐標(biāo)到攝像機(jī)坐標(biāo)的轉(zhuǎn)換代入,最后皆可以得到世界坐標(biāo)系與攝像機(jī)坐標(biāo)系之間的關(guān)系:alph=f/dx, beta=f/dy,分別代表了以X軸與Y
4、軸方向上的像素為單位表示的等效焦距。gamma在較高精度的相機(jī)模型中引入,表示圖像平面中以像素為單位的坐標(biāo)軸傾斜程度的量度,gamma=alpha*tan(theta) theta是相機(jī)CCD陣列v軸的偏斜角度。由針孔模型我們可以知道,如果一直攝像機(jī)的內(nèi)外參數(shù),就知道投影矩陣M,這時(shí)候?qū)θ魏慰臻g點(diǎn)就可以求出其對(duì)應(yīng)圖像坐標(biāo),但是如果已知空間某點(diǎn)的像點(diǎn)m位置(u,v)即使已經(jīng)知道攝像機(jī)內(nèi)外參數(shù),Xw也不能唯一確定,因?yàn)樵谕队斑^(guò)程中消去了Zc的信息。 在上面的式子中M是3x4不可逆矩陣,當(dāng)已知M與(u,v)時(shí),由公式得到的三個(gè)方程中消去z,只可以得關(guān)于Xw,Yw與Zw的兩個(gè)線(xiàn)性方程,這個(gè)方
5、程組即為射線(xiàn)OP的方程,也就是說(shuō),投影點(diǎn)為m的所有點(diǎn)均在該射線(xiàn)上,所以,該空間是不能唯一確定的。攝像頭由于光學(xué)透鏡的特性使得成像存在著徑向畸變,可由三個(gè)參數(shù)k1,k2,k3確定;由于裝配方面的誤差,傳感器與光學(xué)鏡頭之間并非完全平行,因此成像存在切向畸變,可由兩個(gè)參數(shù)p1,p2確定。單個(gè)攝像頭的定標(biāo)主要是計(jì)算出攝像頭的內(nèi)參(焦距f和成像原點(diǎn)cx,cy、五個(gè)畸變參數(shù)(一般只需要計(jì)算出k1,k2,p1,p2,對(duì)于魚(yú)眼鏡頭等徑向畸變特別大的才需要計(jì)算k3)以及外參(標(biāo)定物的世界坐標(biāo))。 OpenCV 中使用的求解焦距和成像原點(diǎn)的算法是基于張正友的方法,而求解畸變參數(shù)是基于 Brown 的方法
6、; 設(shè)(u、v)為理想的圖像像素坐標(biāo),相對(duì)應(yīng)的, 為真實(shí)獲得的像素坐標(biāo)。則(x,y)就為理想的圖像物理坐標(biāo), 為實(shí)際獲得的圖像物理坐標(biāo),可以得到如下的關(guān)系式:我們知道,(u0,v0)在求攝像機(jī)內(nèi)參的時(shí)候可以知道, 在圓心提取排序后也可以知道,(u,v)可以通過(guò)OpenCV中cvProjectpoints函數(shù)求得反投影殘差。(x,y)可以通過(guò) 和 求出,于是克得到如下公式:設(shè)Dk=d,所以可以求出畸變系數(shù)k1,k2.在求得了徑向畸變的系數(shù)以后,就可以如下得到成像儀某點(diǎn)理想的徑向位置其中,r就是當(dāng)前點(diǎn)的所在透鏡半徑,k3只有在精度很高的時(shí)候才用得到 切向畸變主要包括離心畸變和薄
7、棱鏡畸變,其中,離心畸變是由攝像機(jī)的鏡頭中各個(gè)透鏡的光軸不能完全重合造成的。離心畸變其數(shù)學(xué)模型可以表示為:薄棱鏡畸變是由鏡頭設(shè)計(jì)和制造缺陷等誤差造成(比如鏡頭與攝像機(jī)像面之間有很小的傾角,其不僅會(huì)引起徑向偏差,而且會(huì)引起切向誤差)其數(shù)學(xué)模型為:綜合考慮徑向畸變和切向畸變,就需要對(duì)小孔成像模型進(jìn)行修正,理想的圖像點(diǎn)歸一化坐標(biāo)為p=(x,y)T,有畸變的圖像點(diǎn)的歸一化坐標(biāo)為Pd=(xd,yd)T之間關(guān)系為: 2、 用到的OPENCV函數(shù)FindChessboardCorners 尋找棋盤(pán)圖的內(nèi)角點(diǎn)位置 int cvFindChessboardCorners( const vo
8、id*image, CvSize pattern_size,CvPoint2D32f* corners,int* corner_count=NULL,int flags=CV_CALIB_CB_ADAPTIVE_THRESH ); image 輸入的棋盤(pán)圖,必須是8位的灰度或者彩色圖像。 pattern_size 棋盤(pán)圖中每行和每列角點(diǎn)的個(gè)數(shù)。 corners 檢測(cè)到的角點(diǎn) corner_count 輸出,角點(diǎn)的個(gè)數(shù)。如果不是NULL,函數(shù)將檢測(cè)到的角點(diǎn)的個(gè)數(shù)存儲(chǔ)于此變量。 flags 各種操作標(biāo)志,可以是0或者下面值的組合: CV_CALIB_CB_ADAPTIVE_THRESH
9、- 使用自適應(yīng)閾值(通過(guò)平均圖像亮度計(jì)算得到)將圖像轉(zhuǎn)換為黑白圖,而不是一個(gè)固定的閾值。 CV_CALIB_CB_NORMALIZE_IMAGE - 在利用固定閾值或者自適應(yīng)的閾值進(jìn)行二值化之前,先使用cvNormalizeHist來(lái)均衡化圖像亮度。 CV_CALIB_CB_FILTER_QUADS - 使用其他的準(zhǔn)則(如輪廓面積,周長(zhǎng),方形形狀)來(lái)去除在輪廓檢測(cè)階段檢測(cè)到的錯(cuò)誤方塊。 函數(shù)cvFindChessboardCorners試圖確定輸入圖像是否是棋盤(pán)模式,并確定角點(diǎn)的位置。如果所有角點(diǎn)都被檢測(cè)到切它們都被以一定順序排布(一行一行地,每行從左到右),函數(shù)返回非零值,否則在函數(shù)不能發(fā)現(xiàn)
10、所有角點(diǎn)或者記錄它們地情況下,函數(shù)返回0。例如一個(gè)正常地棋盤(pán)圖右8x8個(gè)方塊和7x7個(gè)內(nèi)角點(diǎn),內(nèi)角點(diǎn)是黑色方塊相互聯(lián)通地位置。這個(gè)函數(shù)檢測(cè)到地坐標(biāo)只是一個(gè)大約地值,如果要精確地確定它們的位置,可以使用函數(shù)cvFindCornerSubPix。 FindCornerSubPix 尋找棋盤(pán)圖的內(nèi)角點(diǎn)位置精確角點(diǎn)位置 void cvFindCornerSubPix( const CvArr* image, CvPoint2D32f* corners,
11、0; int count, CvSize win, CvSize zero_zone, CvTermCriteria criteria );image 輸入圖像. corners 輸
12、入角點(diǎn)的初始坐標(biāo),也存儲(chǔ)精確的輸出坐標(biāo) count 角點(diǎn)數(shù)目 win 搜索窗口的一半尺寸。如果win=(5,5) 那么使用 5*2+1 × 5*2+1 = 11 × 11 大小的搜索窗口 zero_zone 死區(qū)的一半尺寸,死區(qū)為不對(duì)搜索區(qū)的中央位置做求和運(yùn)算的區(qū)域。它是用來(lái)避免自相關(guān)矩陣出現(xiàn)的某些可能的奇異性。當(dāng)值為 (-1,-1) 表示沒(méi)有死區(qū)。 criteria 求角點(diǎn)的迭代過(guò)程的終止條件。即角點(diǎn)位置的確定,要么迭代數(shù)大于某個(gè)設(shè)定值,或者是精確度達(dá)到某個(gè)設(shè)定值。 criteria 可以是最大迭代數(shù)目,或者是設(shè)定的精確度,也可以是它們的組合。 函數(shù)cvFindCorne
13、rSubPix通過(guò)迭代來(lái)發(fā)現(xiàn)具有子象素精度的角點(diǎn)位置,或如圖所示的放射鞍點(diǎn)(radial saddle points)。 子象素級(jí)角點(diǎn)定位的實(shí)現(xiàn)是基于對(duì)向量正交性的觀測(cè)而實(shí)現(xiàn)的,即從中央點(diǎn)q到其鄰域點(diǎn)p 的向量和p點(diǎn)處的圖像梯度正交(服從圖像和測(cè)量噪聲)??紤]以下的表達(dá)式: i=DIpiT·(q-pi)其中,DIpi表示在q的一個(gè)鄰域點(diǎn)pi處的圖像梯度,q的值通過(guò)最小化i得到。通過(guò)將i設(shè)為0,可以建立系統(tǒng)方程如下: sumi(DIpi·DIpiT)·q - sumi(DIpi·DIpiT·pi) = 0其中q的鄰域(搜索窗)中的梯度被累加。調(diào)用
14、第一個(gè)梯度參數(shù)G和第二個(gè)梯度參數(shù)b,得到: q=G-1·b該算法將搜索窗的中心設(shè)為新的中心q,然后迭代,直到找到低于某個(gè)閾值點(diǎn)的中心位置。 DrawChessBoardCorners 繪制檢測(cè)到的棋盤(pán)角點(diǎn) void cvDrawChessboardCorners( CvArr* image,CvSize pattern_size,CvPoint2D32f*corners,int count,int pattern_was_found ); image 結(jié)果圖像,必須是8位彩色圖像。 pattern_size 每行和每列地內(nèi)角點(diǎn)數(shù)目。 corners 檢測(cè)到地角點(diǎn)數(shù)
15、組。 count 角點(diǎn)數(shù)目。 pattern_was_found 指示完整地棋盤(pán)被發(fā)現(xiàn)(0)還是沒(méi)有發(fā)現(xiàn)(=0)。可以傳輸cvFindChessboardCorners函數(shù)的返回值。 當(dāng)棋盤(pán)沒(méi)有完全檢測(cè)出時(shí),函數(shù)cvDrawChessboardCorners以紅色圓圈繪制檢測(cè)到的棋盤(pán)角點(diǎn);如果整個(gè)棋盤(pán)都檢測(cè)到,則用直線(xiàn)連接所有的角點(diǎn)。 CalibrateCamera2利用定標(biāo)來(lái)計(jì)算攝像機(jī)的內(nèi)參數(shù)和外參數(shù)void cvCalibrateCamera2 ( const CvMat* object_points,
16、160; constCvMat* image_points,const CvMat* point_counts, CvSizeimage_size, CvMat* intrinsic_matrix,
17、160; CvMat*distortion_coeffs, CvMat* rotation_vectors=NULL, CvMat*translation_vectors=NULL, int flags=0 ); object_points 定標(biāo)點(diǎn)的世界坐標(biāo),為3xN或者Nx3的矩陣,這里N是所有視圖中點(diǎn)的總數(shù)。 image_points 定標(biāo)點(diǎn)的圖像坐標(biāo),為2xN或者Nx2的矩陣,這里N是所有視圖中點(diǎn)的總數(shù)。 poi
18、nt_counts 向量,指定不同視圖里點(diǎn)的數(shù)目,1xM或者M(jìn)x1向量,M是視圖數(shù)目。 image_size 圖像大小,只用在初始化內(nèi)參數(shù)時(shí)。intrinsic_matrix 輸出內(nèi)參矩陣(A) ,如果指定CV_CALIB_USE_INTRINSIC_GUESS和(或)CV_CALIB_FIX_ASPECT_RATION,fx、 fy、 cx和cy部分或者全部必須被初始化。 distortion_coeffs 輸出大小為4x1或者1x4的向量,里面為形變參數(shù)k1, k2, p1, p2。 rotation_vectors 輸出大小為3xM或者M(jìn)x3的矩陣,里面為旋轉(zhuǎn)向量(旋轉(zhuǎn)矩陣的緊湊表示方式
19、,具體參考函數(shù)cvRodrigues2) translation_vectors 輸出大小為3xM或Mx3的矩陣,里面為平移向量。 flags 不同的標(biāo)志,可以是0,或者下面值的組合: · CV_CALIB_USE_INTRINSIC_GUESS- 內(nèi)參數(shù)矩陣包含fx,fy,cx和cy的初始值。否則,(cx,cy)被初始化到圖像中心(這兒用到圖像大?。?,焦距用最小平方差方式計(jì)算得到。注意,如果內(nèi)部參數(shù)已知,沒(méi)有必要使用這個(gè)函數(shù),使用cvFindExtrinsicCameraParams2則可。 · CV_CALIB_FIX_PRI
20、NCIPAL_POINT- 主點(diǎn)在全局優(yōu)化過(guò)程中不變,一直在中心位置或者在其他指定的位置(當(dāng)CV_CALIB_USE_INTRINSIC_GUESS設(shè)置的時(shí)候)。 · CV_CALIB_FIX_ASPECT_RATIO- 優(yōu)化過(guò)程中認(rèn)為fx和fy中只有一個(gè)獨(dú)立變量,保持比例fx/fy不變,fx/fy的值跟內(nèi)參數(shù)矩陣初始化時(shí)的值一樣。在這種情況下, (fx, fy)的實(shí)際初始值或者從輸入內(nèi)存矩陣中讀?。ó?dāng)CV_CALIB_USE_INTRINSIC_GUESS被指定時(shí)),或者采用估計(jì)值(后者情況中fx和fy可能被設(shè)置為任意值,只有比值被使用)。 ·
21、60; CV_CALIB_ZERO_TANGENT_DIST 切向形變參數(shù)(p1, p2)被設(shè)置為0,其值在優(yōu)化過(guò)程中保持為0。 函數(shù)cvCalibrateCamera2從每個(gè)視圖中估計(jì)相機(jī)的內(nèi)參數(shù)和外參數(shù)。3維物體上的點(diǎn)和它們對(duì)應(yīng)的在每個(gè)視圖的2維投影必須被指定。這些可以通過(guò)使用一個(gè)已知幾何形狀切具有容易檢測(cè)的特征點(diǎn)的物體來(lái)實(shí)現(xiàn)。這樣的一個(gè)物體被稱(chēng)作定標(biāo)設(shè)備或者定標(biāo)模式,OpenCV有內(nèi)建的把棋盤(pán)當(dāng)作定標(biāo)設(shè)備方法(參考cvFindChessboardCorners)。目前,傳入初始化的內(nèi)參數(shù)(當(dāng)CV_CALIB_USE_INTRINSIC_GUESS被設(shè)置時(shí))只支持平面定標(biāo)設(shè)備(物
22、體點(diǎn)的Z坐標(biāo)必須時(shí)全0或者全1)。不過(guò)3維定標(biāo)設(shè)備依然可以用在提供初始內(nèi)參數(shù)矩陣情況。在內(nèi)參數(shù)和外參數(shù)矩陣的初始值都計(jì)算出之后,它們會(huì)被優(yōu)化用來(lái)減小反投影誤差(圖像上的實(shí)際坐標(biāo)跟cvProjectPoints2計(jì)算出的圖像坐標(biāo)的差的平方和)。 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)代碼如下:#include <string>#include <iostream>#include <cv.h>#include <highgui.h>using namespace std;int main()int cube_length=5;IplImage* frame = NULL;i
23、nt number_image=12;char *str1;str1=".jpg"char filename20=""IplImage * show; int a=1;int number_image_copy = number_image;CvSize board_size=cvSize(5,7);int board_width=board_size.width;int board_height=board_size.height;int total_per_image=board_width*board_height;CvPoint2D32f * i
24、mage_points_buf = new CvPoint2D32ftotal_per_image;CvMat * image_points=cvCreateMat(number_image*total_per_image,2,CV_32FC1);CvMat * object_points=cvCreateMat(number_image*total_per_image,3,CV_32FC1);CvMat * point_counts=cvCreateMat(number_image,1,CV_32SC1);CvMat * intrinsic_matrix=cvCreateMat(3,3,CV
25、_32FC1);CvMat * distortion_coeffs=cvCreateMat(5,1,CV_32FC1);int count;int found;int step;int successes=0;while(a<=number_image_copy)sprintf_s (filename,"%d.jpg",a);show=cvLoadImage(filename,-1);cvNamedWindow("SrcPicture",1);cvShowImage("SrcPicture",show);found=cvFind
26、ChessboardCorners(show,board_size,image_points_buf,&count,CV_CALIB_CB_ADAPTIVE_THRESH|CV_CALIB_CB_FILTER_QUADS);if(found=0)cout<<"第"<<a<<"幀圖片無(wú)法找到棋盤(pán)格所有角點(diǎn)!nn"cvNamedWindow("FindCornerPoints",1);cvShowImage("FindCornerPoints",show);cvWaitKey
27、(0);elsecout<<"第"<<a<<"幀圖像成功獲得"<<count<<"個(gè)角點(diǎn).n"cvNamedWindow("FindCornerPoints",1);IplImage * gray_image= cvCreateImage(cvGetSize(show),8,1);cvCvtColor(show,gray_image,CV_BGR2GRAY);cout<<"獲取源圖像灰度圖過(guò)程完成.n"cvFindCorne
28、rSubPix(gray_image,image_points_buf,count,cvSize(11,11),cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER,30,0.01);cout<<"灰度圖亞像素化過(guò)程完成.n"cvDrawChessboardCorners(show,board_size,image_points_buf,count,found);cout<<"在源圖像上繪制角點(diǎn)過(guò)程完成.nn"cvShowImage("FindCorn
29、erPoints",show);cvWaitKey(0);if(total_per_image=count)step=successes*total_per_image;for(int i=step,j=0;j<total_per_image;+i,+j)CV_MAT_ELEM(*image_points,float,i,0)=image_points_bufj.x;CV_MAT_ELEM(*image_points,float,i,1)=image_points_bufj.y;CV_MAT_ELEM(*object_points,float,i,0)=(float)(j/cu
30、be_length);CV_MAT_ELEM(*object_points,float,i,1)=(float)(j%cube_length);CV_MAT_ELEM(*object_points,float,i,2)=0.0f;CV_MAT_ELEM(*point_counts,int,successes,0)=total_per_image;successes+;a+;cvReleaseImage(&show);cvDestroyWindow("FindCornerPoints");cvDestroyWindow("SrcPicture");
31、cout<<"*n"cout<<number_image<<"幀圖片中,標(biāo)定成功的圖片為"<<successes<<"幀.n"cout<<number_image<<"幀圖片中,標(biāo)定失敗的圖片為"<<number_image-successes<<"幀.nn"cout<<"*nn"cout<<"按任意鍵開(kāi)始計(jì)算攝像機(jī)內(nèi)參數(shù).nn&quo
32、t;IplImage * show_colie=cvLoadImage("7.jpg",-1);CvMat * object_points2=cvCreateMat(successes*total_per_image,3,CV_32FC1);CvMat * image_points2=cvCreateMat(successes*total_per_image,2,CV_32FC1);CvMat * point_counts2=cvCreateMat(successes,1,CV_32SC1);for(int i=0;i<successes*total_per_imag
33、e;+i)CV_MAT_ELEM(*image_points2,float,i,0)=CV_MAT_ELEM(*image_points,float,i,0);CV_MAT_ELEM(*image_points2,float,i,1)=CV_MAT_ELEM(*image_points,float,i,1);CV_MAT_ELEM(*object_points2,float,i,0)=CV_MAT_ELEM(*object_points,float,i,0);CV_MAT_ELEM(*object_points2,float,i,1)=CV_MAT_ELEM(*object_points,fl
34、oat,i,1);CV_MAT_ELEM(*object_points2,float,i,2)=CV_MAT_ELEM(*object_points,float,i,2);for(int i=0;i<successes;+i)CV_MAT_ELEM(*point_counts2,int,i,0)=CV_MAT_ELEM(*point_counts,int,i,0);cvReleaseMat(&object_points);cvReleaseMat(&image_points);cvReleaseMat(&point_counts);CV_MAT_ELEM(*int
35、rinsic_matrix,float,0,0)=1.0f;CV_MAT_ELEM(*intrinsic_matrix,float,1,1)=1.0f;CvMat * rotation_vectors=cvCreateMat(successes,3,CV_32FC1);CvMat * translation_vectors=cvCreateMat(successes,3,CV_32FC1);cvCalibrateCamera2(object_points2,image_points2,point_counts2,cvGetSize(show_colie),intrinsic_matrix,di
36、stortion_coeffs,/NULL,NULL,0);rotation_vectors,translation_vectors,0);cout<<"攝像機(jī)內(nèi)參數(shù)矩陣為:n"cout<<CV_MAT_ELEM(*intrinsic_matrix,float,0,0)<<" "<<CV_MAT_ELEM(*intrinsic_matrix,float,0,1)<<" "<<CV_MAT_ELEM(*intrinsic_matrix,float,0,2)<&
37、lt;"nn"cout<<CV_MAT_ELEM(*intrinsic_matrix,float,1,0)<<" "<<CV_MAT_ELEM(*intrinsic_matrix,float,1,1)<<" "<<CV_MAT_ELEM(*intrinsic_matrix,float,1,2)<<"nn"cout<<CV_MAT_ELEM(*intrinsic_matrix,float,2,0)<<" &quo
38、t;<<CV_MAT_ELEM(*intrinsic_matrix,float,2,1)<<" "<<CV_MAT_ELEM(*intrinsic_matrix,float,2,2)<<"nn"cout<<"攝像機(jī)旋轉(zhuǎn)矩陣為:n"cout<<CV_MAT_ELEM(*rotation_vectors,float,0,0)<<" "<<CV_MAT_ELEM(*rotation_vectors,float,0,1)<
39、<" "<<CV_MAT_ELEM(*rotation_vectors,float,0,2)<<"nn"cout<<CV_MAT_ELEM(*rotation_vectors,float,1,0)<<" "<<CV_MAT_ELEM(*rotation_vectors,float,1,1)<<" "<<CV_MAT_ELEM(*rotation_vectors,float,1,2)<<"nn"c
40、out<<CV_MAT_ELEM(*rotation_vectors,float,2,0)<<" "<<CV_MAT_ELEM(*rotation_vectors,float,2,1)<<" "<<CV_MAT_ELEM(*rotation_vectors,float,2,2)<<"nn"cout<<"攝像機(jī)平移矩陣為:n"cout<<CV_MAT_ELEM(*translation_vectors,float,0,0)
41、<<" "<<CV_MAT_ELEM(*translation_vectors,float,0,1)<<" "<<CV_MAT_ELEM(*translation_vectors,float,0,2)<<"nn"cout<<CV_MAT_ELEM(*translation_vectors,float,1,0)<<" "<<CV_MAT_ELEM(*translation_vectors,float,1,1)<<
42、;" "<<CV_MAT_ELEM(*translation_vectors,float,1,2)<<"nn"cout<<CV_MAT_ELEM(*translation_vectors,float,2,0)<<" "<<CV_MAT_ELEM(*translation_vectors,float,2,1)<<" "<<CV_MAT_ELEM(*translation_vectors,float,2,2)<<"nn"cout<<"畸變系數(shù)矩陣為:n&quo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025借款擔(dān)保合同簡(jiǎn)化版協(xié)議書(shū)范本
- 高效農(nóng)田種植管理技術(shù)應(yīng)用推廣
- 2025房屋租賃合同范本(示范合同)
- 在線(xiàn)監(jiān)測(cè)系統(tǒng)運(yùn)維合同
- 2025隧道工程承包合同
- 2025綠色、規(guī)范工地安全防護(hù)設(shè)施設(shè)計(jì)、制作及安裝合同
- 服裝行業(yè)時(shí)尚趨勢(shì)分析與產(chǎn)品創(chuàng)新設(shè)計(jì)
- 2025瓷磚鋪貼合同協(xié)議
- 鋼琴入門(mén)學(xué)習(xí)指導(dǎo)書(shū)
- 2025企業(yè)間委托貸款合同
- 湘教版七年級(jí)地理下冊(cè)第七章第四節(jié)歐洲西部課件
- 超星學(xué)習(xí)通四史教育答案
- 基坑工程土方開(kāi)挖支護(hù)與降水監(jiān)理實(shí)施細(xì)則
- 數(shù)字信號(hào)處理(課件)
- 沉淀理論課件
- 最新高三主題班會(huì):行百里者半九十課件
- 土方回填施工記錄表
- 體育調(diào)查問(wèn)卷
- 公司樣品標(biāo)識(shí)卡
- 英語(yǔ)人教新起點(diǎn)(一起)四年級(jí)下冊(cè)-Unit 3 Lesson 2 Travel plans教學(xué)設(shè)計(jì)
- SONYα300α350使用手冊(cè)
評(píng)論
0/150
提交評(píng)論