資源簡介
用OpenCV編寫的相機標定程序,可以對相機進行標定。

代碼片段和文件信息
//?cvCalib.cpp?:?Defines?the?entry?point?for?the?console?application.
//
#include?“stdafx.h“
#include?
#include?
#include?
#include?
void?InitCorners3D(CvMat?*Corners3D?CvSize?ChessBoardSize?int?Nimages?float?SquareSize);
int?image_width?=?768;
int?image_height?=?576;//待標定圖片的大小
const?int?ChessBoardSize_w?=?7;
const?int?ChessBoardSize_h?=?7;//圖片中可標定的角數
const?CvSize??ChessBoardSize?=?cvSize(ChessBoardSize_wChessBoardSize_h);
const?int?NPoints?=?ChessBoardSize_w*ChessBoardSize_h;//角點個數
const?int?NImages=6;//待標定的圖片數
int?corner_count[NImages]?=?{0};
float????SquareWidth?=?10;?//棋盤格子的邊長,可任意設定,不影響內參數
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];
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[]=“cal20Img00.bmp“;???//說明:我把待標定的圖片的名子依次命名為:01.jpg?02.jpg?03.jpg?04.jpg……
if(captured_frames<9)
filename[9]=(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[8]=jj+48;
filename[9]=j+48;
}
else?
printf(“error?too?many?images.......\n“);?//load?images?end
chessBoard_Img=cvLoadImage(?filename?CV_LOAD_IMAGE_COLOR?);
cvCvtColor(chessBoard_Img?current_frame_gray?CV_BGR2GRAY);
????????cvCopy(chessBoard_Imgcurrent_frame_rgb);
int?find_corners_result;
find_corners_result?=?cvFindChessboardCorners(current_frame_gray
ChessBoardSize
&corners[captured_frames*NPoints]
&corner_count[captured_frames]//int?corner_count[NImages]?=?{0};
CV_CALIB_CB_ADAPTIVE_THRESH?);
cvFindCornerSubPix(?current_frame_gray?
&corners[captured_frames*NPoints]
NPoints?cvSize(22)cvSize(-1-1)?
cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS200.03)?);
cvDrawChessboardCorners(current_frame_rgb?ChessBoardSize?//繪制檢測到的棋盤角點
&corners[captured_frames*NPoints]?
NPoints?
find_corners_result);
cvNamedWindow(“Window?0“?1);
cvNamedWindow(“result“?1);?
cvShowImage(“Window?0“chessBoard_Img);
cvShowImage(“result“current_frame_rgb);
cvWaitKey(0);
}
intrinsics?????????=?cvCreateMat(33CV_32FC1);
distortion_coeff?????=?cvCreateMat(14CV_32FC1);
rotation_vectors?????=?cvCreateMat(NImages3CV_32FC1);
translation_vectors?????=?cvCreateMat(NImages3CV_32FC1);
point_counts?????????=?c
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????130381??2005-11-17?13:58??cvCalibaa\01.JPG
?????文件?????109360??2005-11-17?13:58??cvCalibaa\02.JPG
?????文件?????125663??2005-11-17?13:58??cvCalibaa\03.JPG
?????文件?????128246??2005-11-17?13:58??cvCalibaa\04.JPG
?????文件?????112619??2005-11-17?13:58??cvCalibaa\05.JPG
?????文件?????111641??2005-11-17?13:58??cvCalibaa\06.JPG
?????文件??????96272??2005-11-17?13:58??cvCalibaa\07.JPG
?????文件?????112094??2005-11-17?13:58??cvCalibaa\08.JPG
?????文件?????116816??2005-11-17?13:58??cvCalibaa\09.JPG
?????文件?????124167??2005-11-17?13:58??cvCalibaa\10.JPG
?????文件?????110629??2005-11-17?13:58??cvCalibaa\11.JPG
?????文件?????123652??2005-11-17?13:58??cvCalibaa\12.JPG
?????文件?????104432??2005-11-17?13:58??cvCalibaa\13.JPG
?????文件?????125925??2005-11-17?13:59??cvCalibaa\14.JPG
?????文件?????110361??2005-11-17?13:59??cvCalibaa\15.JPG
?????文件?????109461??2005-11-17?13:59??cvCalibaa\16.JPG
?????文件?????110558??2005-11-17?13:59??cvCalibaa\17.JPG
?????文件?????111244??2005-11-17?13:59??cvCalibaa\18.JPG
?????文件?????126039??2005-11-17?13:59??cvCalibaa\19.JPG
?????文件?????443446??2008-10-13?14:14??cvCalibaa\cal20Img00.bmp
?????文件?????443446??2008-10-13?14:14??cvCalibaa\cal20Img01.bmp
?????文件?????443446??2008-10-13?14:14??cvCalibaa\cal20Img02.bmp
?????文件?????443446??2008-10-13?14:15??cvCalibaa\cal20Img03.bmp
?????文件?????443446??2008-10-13?14:15??cvCalibaa\cal20Img04.bmp
?????文件?????443446??2008-10-13?14:15??cvCalibaa\cal20Img05.bmp
?????文件?????443446??2008-10-13?14:15??cvCalibaa\cal20Img06.bmp
?????文件?????843824??2006-10-18?21:49??cvCalibaa\cv100.dll
?????文件???????6840??2008-12-09?11:22??cvCalibaa\cvCalib.cpp
?????文件???????3975??2008-11-28?16:39??cvCalibaa\cvCalib.dsp
?????文件????????539??2007-10-20?15:56??cvCalibaa\cvCalib.dsw
............此處省略29個文件信息
評論
共有 條評論