利用OpenCv程序生成棋盘格标定板,并且实现像素单位与米制单位的转换

/*********************************************************************************************
程序功能:
        利用OpenCv和C++实现灰度图像直方图的绘制---自己编写的灰度直方图计算函数
有关利用OpenCv程序生成棋盘格表顶板的一些其他问题解释:
        1---我们利用程序生成棋盘格标定盘的目的是为了进行摄像机标定或者双目视觉,三位重建等
		2---那么问题是------我们现在用程序生成的棋盘格,我们只能知道它以像素为单位的Size(width*height),
		    但是,有时候,我们要写一些视觉定位的工程或者在一些实际应用中,我们需要知道像素单位与米制单
			位之间的相互转换关系,那么,我们应该怎么办/
		3---解决方法很简单,把你用程序生成的棋盘格图片用PS打开,然后查看---【图像】----【图像大小】
编写环境:
        OpenCv2.4.8+VS2010
地点时间:
        陕西师范大学 2016.7.24
作者信息:
        九月-------qq---934089770
**********************************************************************************************/

#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>

void main()
{
	IplImage	*img  = NULL;
	int          dx   = 50;		//棋盘格大小,像素为单位,也就是棋盘格角点之间的距离
	int          dy   = 8;		//棋盘格数目
	int          flag = 0;

	img   = cvCreateImage(cvSize(dx*dy, dx*dy), IPL_DEPTH_8U, 1);

	cvZero(img);

	for(int i=0;i<dy;i++)
	{
		for(int j=0;j<dy;j++)
		{
			flag = (i+j)%2;
			if (flag == 0)
			{
				for (int m=i*dx; m<(i+1)*dx; m++)
					for(int n=j*dx; n<(j+1)*dx; n++)
						*(img->imageData+m*img->widthStep+n)=255;
			}
			
		}//for j
	}//for i
	cvSaveImage("标定图.bmp",img);
	cvNamedWindow("ChessedBoard", 1); 
	cvShowImage("ChessedBoard",img);
	cv::waitKey(0);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值