资源简介
能用,有实验图片,能求畸变参数和摄像头内参 外参

代码片段和文件信息
#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 < NImages ; CurrentImage++)
{
for (CurrentRow = 0; CurrentRow < ChessBoardSize.height; CurrentRow++)
{
for (CurrentColumn = 0; CurrentColumn < ChessBoardSize.width; 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个文件信息
相关资源
- 人脸识别(opencv_facedetect_v4l2)
- 基于opencv的模板匹配代码
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- opencv激光中心线的提取
- OpenCV Computer Vision Application Programming
- 基于图割的图像分割OpenCV+MFC实现
- 识别魔方颜色
- opencv版俄罗斯方块源码
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- 粒子滤波器+目标跟踪的C++实现,VS2
- 张平OpenCV算法精讲基于python和C++教材
- 虹膜识别开源代码OSIRIS4.1基于opencv
- Sift特征点提取与匹配opencv库
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 光流法代码
- OpenCV打开摄像机显示在MFC窗口工程源
- 使用c++读取图像到二维矩阵
- 三维点云的圆柱面拟合
- MFC+OPENCV摄像机标定程序
- 基于特征脸的人脸识别MFC+OpenCV
- opencv图像处理MFC
- OPENCV人脸检测加角点检测并输出坐标
- FillHole.rar
- 道路提取算法 c++ opencv
- PCA代码实现详解
- opencv卡尔曼滤波
- SeamCarving opencv c++
评论
共有 条评论