資源簡介
灰度圖和彩色圖像均可以標定,已測試通過,標定結果會保存成文檔格式,稍微模糊的圖檢測效果也很好
代碼片段和文件信息
//?CameraCalibration.cpp?:?定義控制臺應用程序的入口點。
//
#include?“stdafx.h“
#include?
#include?
#include?
#include?
int?n_boards?=?0;?//Will?be?set?by?input?list
int?board_w;
int?board_h;
int?_tmain(int?argc?_TCHAR*?argv[])
{
//board_w?=?12;??//水平角點個數(shù)
//board_h?=?11;??//豎直角點個數(shù)
board_w?=?9;??//水平角點個數(shù)
board_h?=?6;??//豎直角點個數(shù)
int?board_n??=?board_w?*?board_h;??//單張圖片的角點總數(shù)
CvSize?board_sz?=?cvSize(?board_w?board_h?);
//讀取存儲標定圖片名稱的文檔
FILE?*fptr?=?fopen(“chessboards.txt““r“);
char?names[2048];
//COUNT?THE?NUMBER?OF?IMAGES:
while(fscanf(fptr“%s?“names)==1){
n_boards++;
}
rewind(fptr);
cvNamedWindow(?“Calibration“?);
????//ALLOCATE?STORAGE申請存儲空間
????CvMat*?image_points??????=?cvCreateMat(n_boards*board_n2CV_32FC1);?//存儲角點的像素坐標
????CvMat*?object_points?????=?cvCreateMat(n_boards*board_n3CV_32FC1);?//存儲角點的世界坐標
????CvMat*?point_counts??????=?cvCreateMat(n_boards1CV_32SC1);?????????//存儲標定圖片的個數(shù)
????CvMat*?intrinsic_matrix??=?cvCreateMat(33CV_32FC1);????????????????//存儲內參數(shù)矩陣
????CvMat*?distortion_coeffs?=?cvCreateMat(51CV_32FC1);????????????????//存儲畸變系數(shù)
????IplImage*?image?=?0;
????IplImage*?gray_image?=?0;?//for?subpixel亞像素標定所需的灰度圖像
????CvPoint2D32f*?corners?=?new?CvPoint2D32f[?board_n?];
????int?corner_count;
????int?successes?=?0;
????int?step;
//讀取標定圖片
????for(?int?frame=0;?frameame++?)?{
????fscanf(fptr“%s?“names);
????if(image){
????cvReleaseImage(&image);
????image?=?0;
????}
????image?=?cvLoadImage(?names);
??? ????if(gray_image?==?0??&&?image)?//We‘ll?need?this?for?subpixel?accurate?stuff
????gray_image?=?cvCreateImage(cvGetSize(image)81);
if?(!image)
{
//printf(“null?image\n“);
exit(-1);
}
????
//查找棋盤角點
????????int?found?=?cvFindChessboardCorners(imageboard_szcorners&corner_count?CV_CALIB_CB_ADAPTIVE_THRESH?|?CV_CALIB_CB_FILTER_QUADS);
cvCvtColor(image?gray_image?CV_RGB2GRAY);
????
//Get?Subpixel?accuracy?on?those?corners
? ????cvFindCornerSubPix(gray_image?corners?corner_countcvSize(1111)cvSize(-1-1)?cvTermCriteria(?CV_TERMCRIT_EPS+CV_TERMCRIT_ITER?30?0.1?));
??
//Draw?it
????cvDrawChessboardCorners(image?board_sz?corners?corner_count?found);
//Show?it
????????cvShowImage(?“Calibration“?image?);
????cvWaitKey(10);
????????//?If?we?got?a?good?board?add?it?to?our?data
????????if(?corner_count?==?board_n?)?{
????step?=?successes*board_n;
????????????for(?int?i=step?j=0;?j ????????????????CV_MAT_ELEM(*image_points?floati0)?=?corners[j].x;
????????????????CV_MAT_ELEM(*image_points?floati1)?=?corners[j].y;
????????????????CV_MAT_ELEM(*object_pointsfloati0)?=?j/board_w;
????????????????CV_MAT_ELEM(*object_pointsfloati1)?=?j%board_w;
????????????????CV_MAT_ELEM(*object_pointsfloati2)?=?0.0f;
????}
????????????CV_MAT_ELEM(*point_counts?intsuccesses0)?=?board_n;
????????????s
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????3736518??2015-03-19?14:20??CameraCalibration\CameraCalibration\1.bmp
?????文件????3736518??2015-03-19?14:19??CameraCalibration\CameraCalibration\800z.bmp
?????文件????1246566??2018-01-02?10:57??CameraCalibration\CameraCalibration\calibration\1.bmp
?????文件????1246566??2018-01-02?11:00??CameraCalibration\CameraCalibration\calibration\10.bmp
?????文件????1246566??2018-01-02?11:00??CameraCalibration\CameraCalibration\calibration\11.bmp
?????文件????1246566??2018-01-02?11:01??CameraCalibration\CameraCalibration\calibration\12.bmp
?????文件????1246566??2018-01-02?11:01??CameraCalibration\CameraCalibration\calibration\13.bmp
?????文件????1246566??2018-01-02?11:01??CameraCalibration\CameraCalibration\calibration\14.bmp
?????文件????1246566??2018-01-02?11:01??CameraCalibration\CameraCalibration\calibration\15.bmp
?????文件????1246566??2018-01-02?11:01??CameraCalibration\CameraCalibration\calibration\16.bmp
?????文件????1246566??2018-01-02?11:01??CameraCalibration\CameraCalibration\calibration\17.bmp
?????文件????1246566??2018-01-02?11:02??CameraCalibration\CameraCalibration\calibration\18.bmp
?????文件????1246566??2018-01-02?11:02??CameraCalibration\CameraCalibration\calibration\19.bmp
?????文件????1246566??2018-01-02?10:57??CameraCalibration\CameraCalibration\calibration\2.bmp
?????文件????1246566??2018-01-02?11:02??CameraCalibration\CameraCalibration\calibration\20.bmp
?????文件????1246566??2018-01-02?11:02??CameraCalibration\CameraCalibration\calibration\21.bmp
?????文件????1246566??2018-01-02?11:02??CameraCalibration\CameraCalibration\calibration\22.bmp
?????文件????1246566??2018-01-02?10:59??CameraCalibration\CameraCalibration\calibration\3.bmp
?????文件????1246566??2018-01-02?10:59??CameraCalibration\CameraCalibration\calibration\4.bmp
?????文件????1246566??2018-01-02?11:00??CameraCalibration\CameraCalibration\calibration\5.bmp
?????文件????1246566??2018-01-02?11:00??CameraCalibration\CameraCalibration\calibration\6.bmp
?????文件????1246566??2018-01-02?11:00??CameraCalibration\CameraCalibration\calibration\7.bmp
?????文件????1246566??2018-01-02?11:00??CameraCalibration\CameraCalibration\calibration\8.bmp
?????文件????1246566??2018-01-02?11:00??CameraCalibration\CameraCalibration\calibration\9.bmp
?????文件?????921654??2015-04-15?15:56??CameraCalibration\CameraCalibration\calibration2\1.bmp
?????文件?????921654??2015-04-15?15:56??CameraCalibration\CameraCalibration\calibration2\10.bmp
?????文件?????921654??2015-04-15?15:56??CameraCalibration\CameraCalibration\calibration2\11.bmp
?????文件?????921654??2015-04-15?15:56??CameraCalibration\CameraCalibration\calibration2\12.bmp
?????文件?????921654??2015-04-15?15:56??CameraCalibration\CameraCalibration\calibration2\13.bmp
?????文件?????921654??2015-04-15?15:56??CameraCalibration\CameraCalibration\calibration2\14.bmp
............此處省略102個文件信息
評論
共有 條評論