• 大小: 2.72MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-26
  • 语言: C/C++
  • 标签: opencv  

资源简介

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

资源截图

代码片段和文件信息

#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个文件信息

评论

共有 条评论