資源簡介
能用,有實驗圖片,能求畸變參數和攝像頭內參 外參

代碼片段和文件信息
#include?
#include?
#include?
#include?
//?OpenCV
#include?
#include?
#include?
#include?
//void?InitCorners3D(CvMat?*Corners3D?CvSize?ChessBoardSize?int?Nimages?float?SquareSize);
void?InitCorners3D(CvMat?*Corners3D?CvSize?ChessBoardSize?int?NImages?float?SquareSize)
{
??int?CurrentImage?=?0;
??int?CurrentRow?=?0;
??int?CurrentColumn?=?0;
??int?NPoints?=?ChessBoardSize.height*ChessBoardSize.width;
??float?*?temppoints?=?new?float[NImages*NPoints*3];
??//?for?now?assuming?we‘re?row-scanning
??for?(CurrentImage?=?0?;?CurrentImage???{
????for?(CurrentRow?=?0;?CurrentRow?????{
??????for?(CurrentColumn?=?0;?CurrentColumn???????{
????temppoints[(CurrentImage*NPoints*3)+(CurrentRow*ChessBoardSize.width?+?CurrentColumn)*3]=(float)CurrentRow*SquareSize;
????temppoints[(CurrentImage*NPoints*3)+(CurrentRow*ChessBoardSize.width?+?CurrentColumn)*3+1]=(float)CurrentColumn*SquareSize;
????temppoints[(CurrentImage*NPoints*3)+(CurrentRow*ChessBoardSize.width?+?CurrentColumn)*3+2]=0.f;
??????}
????}
??}
??(*Corners3D)?=?cvMat(NImages*NPoints3CV_32FC1?temppoints);
}
int?image_width?=?640;//待標定圖片的大小
int?image_height?=?480;
const?int?ChessBoardSize_w?=?5;//圖片中可標定的行角點數
const?int?ChessBoardSize_h?=?4;//圖片中可標定的列角點數
const?CvSize??ChessBoardSize?=?cvSize(ChessBoardSize_wChessBoardSize_h);
const?int?NPoints?=?ChessBoardSize_w*ChessBoardSize_h;//每張圖片中的總點數
const?int?NImages=12;//待標定的圖片數
int?corner_count[NImages]?=?{0};
float????SquareWidth?=?23;?//棋盤格子的邊長23毫米。
CvMat?*intrinsics;
CvMat?*distortion_coeff;
CvMat?*rotation_vectors;
CvMat?*translation_vectors;
CvMat?*object_points;
CvMat?*point_counts;
CvMat?*image_points;
void?main()
{
?IplImage?????*current_frame_rgb;?//彩色圖像頭
?IplImage?????*current_frame_gray;//灰色圖像頭
?IplImage?????*chessBoard_Img;//棋盤格圖像頭
?CvPoint2D32f?corners[NPoints*NImages];//corners數組存放所有圖片角點的坐標
?chessBoard_Img?=cvCreateImage(cvSize(image_width?image_height)?IPL_DEPTH_8U?3);
?current_frame_gray?=?cvCreateImage(cvSize(image_width?image_height)?IPL_DEPTH_8U?1);
?current_frame_rgb?=?cvCreateImage(cvSize(image_width?image_height)?IPL_DEPTH_8U?3);
?int?captured_frames=0;
?for(captured_frames=0;captured_framesames++)
?{
??char?filename[]=“00.jpg“;???//說明:我把待標定的圖片的名子依次命名為:01.jpg?02.jpg?03.jpg?04.jpg……
??if(captured_frames<9)
??filename[1]=(char)(captured_frames+49);
??else?if(captured_frames>=9&&captured_frames<=99){
????int?jjj;
????jj=(captured_frames+1)/10;
????j=(captured_frames+1)%10;
????filename[0]=jj+48;
????filename[1]=j+48;
???}
???else?printf(“error?too?many?images.......\n“);?
??chessBoard_Img=cvLoadImage(?filename?CV_LOAD_IMAGE_COLOR?);
??cvCvtColor(chessBoard_Img?current_frame_gray?CV_BGR2GRAY);
??cvCopy(chessBoard_I
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A.SH.?????38912??2009-11-12?19:50??攝像機標定程序1\Thumbs.db
?????文件??????28056??2009-11-06?19:33??攝像機標定程序1\01.jpg
?????文件??????26742??2009-11-06?19:33??攝像機標定程序1\02.jpg
?????文件??????28542??2009-11-06?19:34??攝像機標定程序1\03.jpg
?????文件??????30202??2009-11-06?19:34??攝像機標定程序1\04.jpg
?????文件??????29695??2009-11-06?19:34??攝像機標定程序1\05.jpg
?????文件??????25192??2009-11-06?19:34??攝像機標定程序1\06.jpg
?????文件??????26076??2009-11-06?19:35??攝像機標定程序1\07.jpg
?????文件??????33800??2009-11-06?19:35??攝像機標定程序1\08.jpg
?????文件??????33484??2009-11-06?19:35??攝像機標定程序1\09.jpg
?????文件??????32192??2009-11-06?19:36??攝像機標定程序1\10.jpg
?????文件??????35004??2009-11-06?19:37??攝像機標定程序1\11.jpg
?????文件??????33999??2009-11-06?19:38??攝像機標定程序1\12.jpg
?????文件??????48640??2009-11-12?19:53??攝像機標定程序1\改正過的biaoding1.opt
?????文件???????8994??2009-11-12?19:53??攝像機標定程序1\改正過的biaoding1.cpp
?????文件?????197632??2009-11-12?19:53??攝像機標定程序1\Debug\vc60.idb
?????文件?????135168??2009-11-12?19:53??攝像機標定程序1\Debug\vc60.pdb
?????文件????2319360??2009-11-12?19:53??攝像機標定程序1\Debug\改正過的biaoding1.bsc
?????文件????5559364??2009-11-12?19:52??攝像機標定程序1\Debug\改正過的biaoding1.pch
?????文件?????282408??2009-11-12?19:53??攝像機標定程序1\Debug\改正過的biaoding1.ilk
?????文件??????32537??2009-11-12?19:53??攝像機標定程序1\Debug\改正過的biaoding1.obj
?????文件?????590848??2009-11-12?19:53??攝像機標定程序1\Debug\改正過的biaoding1.pdb
?????文件?????233570??2009-11-12?19:53??攝像機標定程序1\Debug\改正過的biaoding1.exe
?????文件??????????0??2009-11-12?19:53??攝像機標定程序1\Debug\改正過的biaoding1.sbr
?????文件???????3698??2009-11-10?20:53??攝像機標定程序1\改正過的biaoding1.dsp
?????文件??????58368??2009-11-12?19:53??攝像機標定程序1\改正過的biaoding1.ncb
?????文件????????995??2009-11-12?19:53??攝像機標定程序1\改正過的biaoding1.plg
?????文件????????542??2009-11-10?14:51??攝像機標定程序1\改正過的biaoding1.dsw
?????目錄??????????0??2009-11-10?14:47??攝像機標定程序1\Debug
?????目錄??????????0??2009-11-10?14:46??攝像機標定程序1
............此處省略3個文件信息
評論
共有 條評論