本文实例为大家分享了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纸铺满的方式打印出来,贴在一个刚体的板子上,即可用于相机标定。

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

OpenCV实现相机标定板的更多相关文章

  1. C语言的进制转换及算法实现教程

    1、其他进制转十进制1.1、二进制转十进制转换规程: 从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和,例如:二进制 1011 = 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 1 + 2 + 0 + 8 = 111.2、八制转十进制转换规则: 从最低位开始......

  2. 关于C语言中数据在内存中的存储详解

    前言1. 数据类型详细介绍2. 整形在内存中的存储:原码、反码、补码3. 大小端字节序介绍及判断4. 浮点型在内存中的存储解析一、数据类型介绍1.类型的基本归类1.整形家族charunsigned charsigned charshortunsigned short [int]signed shor......

  3. 关于C++中构造函数的常见疑问

    基本概念我们已经知道在定义一个对象时,该对象会根据你传入的参数来调用类中对应的构造函数。同时,在释放这个对象时,会调用类中的析构函数。其中,构造函数有三种,分别是默认构造函数,有参构造函数和拷贝构造函数。在类中,如果我们没有自行定义任何的构造函数,编译器会为我们提供两种构造函数(默认构造函数和拷贝构......

  4. C语言之漫谈指针(下)

    C语言之漫谈指针(下)在上节我们讲到了一些关于指针的基础知识:详见:C语言之漫谈指针(上)本节大纲:零.小tips一.字符指针二.指针数组与数组指针三.数组传参与指针传参四.函数指针及函数指针数组五.回调函数六.例题讲解 零.小tips在正式开始下节之前,我们先来穿插两个小tips:1.打印函数......

  5. std::async的使用总结

    C++98标准中并没有线程库的存在,直到C++11中才终于提供了多线程的标准库,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。多线程库对应的头文件是#include ,类名为std::thread。然而线程毕竟是比较贴近系统的东西,使用起来仍然不是很方便,特别是线程同步及获取线程运行结......

  6. C语言递归之汉诺塔和青蛙跳台阶问题

    递归就是一个函数执行过程中调用自己,在c语言中有很多关于递归的经典问题,例如:斐波那契数列问题、汉诺塔问题等,在研究递归问题时我们要注意三点:1.递归的结束条件2.递归在每次进行过程中,都得离条件越来越近3.相邻两次递归调用之间的关联关系汉诺塔问题:有三根杆子A, B, C。A杆上有N个(N >......

  7. OpenCV实现相机标定板

    本文实例为大家分享了OpenCV实现相机标定板的具体代码,供大家参考,具体内容如下1.代码实现#include <opencv.hpp>#include "highgui.h"#include "cxcore.h"using namespace c......

  8. C语言中的const如何保证变量不被修改

    这小段文章要理清楚的是,在C语言中,const是如何保证变量不被修改的?我们可以想到两种方式:第一种,由编译器来阻止修改const变量的语句,让这种程序不能通过编译;第二种,由操作系统来阻止,即把const 的内存地址访问权限标记为“只读”,一旦运行中的程序试图修改它,就会产生异常,终止进程。上面想......

  9. C++ 控制台弹出文件管理对话框案例

    在控制台程序中打开文件管理对话框,效果图如下所示:在需要弹出对话框的地方插入以下代码://打开文件管理窗口TCHAR szBuffer[MAX_PATH] = { 0 };OPENFILENAME file = { 0 };file.hwndOwner = NULL;file.lStructSize......

  10. C++ 入门篇

    C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选......

随机推荐

  1. unity 切换场景不销毁物体问题的解决

    在用unity进行游戏开发时我们有时需要一些物体在场景切换时不需要被销毁这时我们可以用官方给的DontDestroyOnLoad()方法,这个方法可以让我们在场景切换时不销毁场景。但如果你又返回这个场景(创建不可销毁物体的场景)时就会发现会有两个这个物体(标记为不可销毁的物体)。这个问题有一个较为简......

  2. ASP.NET Core错误处理中间件[4]: 响应状态码错误页面

    StatusCodePagesMiddleware中间件与ExceptionHandlerMiddleware中间件类似,它们都是在后续请求处理过程中“出错”的情况下利用一个错误处理器来接收针对当前请求的处理。它们之间的差异在于对“错误”的认定上:ExceptionHandlerMiddleware......

  3. 整理CocosCreator常用知识点

    一、场景加载cc.director.loadScene(‘场景名称');//场景跳转cc.director.preloadScene(‘场景名称');//预加载场景cc.director.getScene();//获取当前场景二、查找节点1,节点查找node = cc.find(“Canvas/bg......

  4. Vue 内置组件keep-alive的使用示例

    keep-alive 是Vue内置的组件之一, 主要用于保留组件状态或避免重新渲染。作用在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验。一、keep-alive 用法< keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销......

  5. c# WPF中自定义加载时实现带动画效果的Form和FormItem

    背景今天我们来谈一下我们自定义的一组WPF控件Form和FormItem,然后看一下如何自定义一组完整地组合WPF控件,在我们很多界面显示的时候我们需要同时显示文本、图片并且我们需要将这些按照特定的顺序整齐的排列在一起,这样的操作当然通过定义Grid和StackPanel然后组合在一起当然也是可以的......

  6. python 下载文件的几种方式

    1 、一般同步下载示例代码:import requestsimport osdef downlaod(url, file_path):headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68......

  7. php中数组最简单的使用方法

    我们在说映射的时候,有些小伙伴就会联想到数组,没错,因为数组就是用了映射的思想。这里很多刚学php的小伙伴对概念不是很了解,不过小编把数组的定义、语法整理出来,大家跟着进行实例学习就可以了,最后再看看使用数组的一些注意事项。下面我们进入今天的学习吧。1.定义数组是PHP中的重要数组类型之一,是复合类......

  8. Python进阶丨如何创建你的第一个Python元类?

    摘要:通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。Python元类设置类的行为和规则。元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一。通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。本文介绍以下概念:......

  9. R语言 解决安装ggplot2报错的问题

    如下所示:install.packages(‘xxx',repos=‘http://cran.us.r-project.org')xxx 改为 ggplot2补充:R包安装时,出现的错误解决合集如下所示:1.library(devtools)#error:Error in get(genname, ......

  10. Python统计列表元素出现次数的方法

    1. 引言在使用Python的时候,通常会出现如下场景:array = [1, 2, 3, 3, 2, 1, 0, 2]获取array中元素的出现次数比如,上述列表中:0出现了1次,1出现了2次,2出现了3次,3出现了2次。本文阐述了Python获取元素出现次数的几种方法。点击获取完整代码。2. 方......