OpenCV实现相机标定板

本文实例为大家分享了OpenCV实现相机标定板的具体代码,供大家参考,具体内容如下

1.代码实现

#include <opencv.hpp>
#include "highgui.h"
#include "cxcore.h"

using namespace cv;

int main0(int argc, char *argv[])
{
    int width = 140;//width and heigth of single square
    int height = 140;
        IplImage *src = cvCreateImage(cvSize(width*(10+1),width*(6+1)), IPL_DEPTH_8U, 1);//in the CalibrationAndTest.cpp ,there is a param called boardsize(10,6), causing here:(10+1),(6+1)
        cvZero(src);
        for (int i = 0; i < src->height; i++)
        {
            for (int j = 0; j < src->width; j++)
            {
                if ((i / width + j / height) % 2 != 0)
                {
                    src->imageData[i*src->widthStep + j * src->nChannels] = 255;
                }
            }
        }

        //cvNamedWindow("src");
        cvShowImage("src", src);

        //cvSaveImage("ChessBoard.bmp", src, 0);
        cvWaitKey(0);

        return 0;
}

2.效果展示

3.使用说明

将该程序生成的图片使用A4纸铺满的方式打印出来,贴在一个刚体的板子上,即可用于相机标定。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • OpenCV实现简易标定板

    本文实例为大家分享了OpenCV实现简易标定板的具体代码,供大家参考,具体内容如下 使用OpenCV生成标定板图片,然后找高精度打印机进行打印,贴在硬板上,就可以得到一个简易的标定板. 废话不多说,代码如下: //编程环境:VS2013, X64,OpenCV3.0.0 #include <iostream> #include <opencv2\core\core.hpp> #include <opencv2\opencv.hpp> using namespace st

  • OpenCV实现相机标定板

    本文实例为大家分享了OpenCV实现相机标定板的具体代码,供大家参考,具体内容如下 1.代码实现 #include <opencv.hpp> #include "highgui.h" #include "cxcore.h" using namespace cv; int main0(int argc, char *argv[]) { int width = 140;//width and heigth of single square int heigh

  • OpenCV实现相机标定示例详解

    目录 环境准备 相机标定 棋盘格图片 实时显示相机的画面 在线标定 实时显示相机画面,按键保存能检测到角点的 棋盘格图片 离线标定 畸变矫正 环境准备 vs2015+opencv4.10安装与配置 相机标定 棋盘格图片 可以自己生成,然后打印到A4纸上.(也可以去TB买一块,平价买亚克力板的,不反光买氧化铝材质,高精度买陶瓷的) /** * 生成棋盘格图片 **/ int generateCalibrationPicture() { //Mat frame = imread("3A4.bmp&q

  • OpenCV实现相机标定

    本文实例为大家分享了OpenCV实现相机标定的具体代码,供大家参考,具体内容如下 一.相机与针孔相机模型 1.相机模型 现代科技加持下的相机已经成为制造精密设计巧妙的消费品,相机的光学结构也比诞生之初复杂了许多典型单反相机光学结构: 在众多相机模型中,针孔相机又称投影相机模型是相对简单而常用的模型.简单的说,针孔相机模型就是把相机简化成单纯的小孔成像,可想而知,这种简化对于精度要求高的情况或者特殊镜头的相机是不适用的.小孔成像原理: 2.引入透镜 单纯的小孔成像模型中没有考虑镜头,现实条件下,由

  • 聊一聊OpenCV相机标定

    相机标定:简单的说,就是获得相机参数的过程.参数如:相机内参数矩阵,投影矩阵,旋转矩阵和平移矩阵等 什么叫相机参数? 简单的说,将现实世界中的人.物,拍成一张图像(二维).人或物在世界中的三维坐标,和图像上对应的二维坐标间的关系.表达两种不同维度坐标间的关系用啥表示?用相机参数. 相机的成像原理 先来看一下,相机的成像原理: 如图所示,这是一个相机模型.将物体简化看成一个点.来自物体的光,通过镜头,击中图像平面(图像传感器),以此成像.d0是物体到镜头的距离,di时镜头到图像平面的距离,f是镜头

  • Python opencv相机标定实现原理及步骤详解

    相机标定相机标定的目的 获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像. 相机标定的输入 标定图像上所有内角点的图像坐标,标定板图像上所有内角点的空间三维坐标(一般情况下假定图像位于Z=0平面上). 相机标定的输出 摄像机的内参.外参系数. 拍摄的物体都处于三维世界坐标系中,而相机拍摄时镜头看到的是三维相机坐标系,成像时三维相机坐标系向二维图像坐标系转换.不同的镜头成像时的转换矩阵不同,同时可能引

  • OpenCV相机标定的全过程记录

    目录 一.OpenCV标定的几个常用函数 findChessboardCorners()棋盘格角点检测 cv::drawChessboardCorners()棋盘格角点的绘制 find4QuadCornerSubpix()对粗提取的角点进行精确化 cornerSubPix()亚像素检测 calibrateCamera()求解摄像机的内在参数和外在参数 initUndistortRectifyMap()计算畸变参数 二.绘制棋盘格,拍摄照片 三.相机标定 四.对图片进行校正 总结 一.OpenCV

  • 基于python opencv单目相机标定的示例代码

    相机固定不动,通过标定版改动不同方位的位姿进行抓拍 import cv2 camera=cv2.VideoCapture(1) i = 0 while 1: (grabbed, img) = camera.read() cv2.imshow('img',img) if cv2.waitKey(1) & 0xFF == ord('j'): # 按j保存一张图片 i += 1 u = str(i) firename=str('./img'+u+'.jpg') cv2.imwrite(firename

  • Python+OpenCV实现寻找到圆点标定板的角点

    图像大小按原图计算 dis_mm是标定板上的实际距离,要根据真实情况计算. 示例代码 # coding:utf-8 import math import cv2 import numpy as np import xml.etree.ElementTree as ET import matplotlib.pyplot as plt global DPI DPI = 0.00245 def mainFigure(img): w = 20 h = 5 params = cv2.SimpleBlobD

  • OpenCV实现相机校正

    本文实例为大家分享了OpenCV实现相机校正的具体代码,供大家参考,具体内容如下 1. 相机标定 根据张正友校正算法,利用棋盘格数据校正对车载相机进行校正,计算其内参矩阵,外参矩阵和畸变系数. 标定的流程是: 准备棋盘格数据,即用于标定的图片 对每一张图片提取角点信息 在棋盘上绘制提取到的角点(非必须,只是为了显示结果) 利用提取的角点对相机进行标定 获取相机的参数信息 2.关于相机校正用到的几个API: 1.寻找棋盘图中的棋盘角点 rect, corners = cv2.findChessbo

随机推荐