生成棋盘格(标定板图片)

在相机标定过程中,如果没有很精确的标定板时,就需要我们自己打印棋盘格的图片来充当标定板,项目程序就是生成黑白棋盘格的程序,比较简单就不讲解了。

// 头文件
#include<iostream>
#include<opencv2\opencv.hpp>

// 命名空间
using namespace std;
using namespace cv;

void main() {
	int n_cols = 3;   // 角点行的个数
	int n_rows = 6;   //角点列的个数
	int n_pix = 1000;  //每一个块的像素

	int col = n_pix * (n_cols + 1);   // 生成标定图的列
	int row = n_pix * (n_rows + 1);  //生成标定图的行

	Mat map = Mat(row, col, CV_8UC3, Scalar::all(0));  //初始化将所有的像素设为0
	for (int i = 0; i < row; i++) {						// 遍历所有像素点
		for (int j = 0; j < col; j++) {
			if (int(i / n_pix) % 2 == 0) {             //如果是奇数行
				if (int(j / n_pix) % 2 != 0) {
					map.at<Vec3b>(i, j)[0] = 255;
					map.at<Vec3b>(i, j)[1] = 255;
					map.at<Vec3b>(i, j)[2] = 255;
				}
			}
			if (int(i / n_pix) % 2 != 0) {            //如果是偶数行
				if (int(j / n_pix) % 2 == 0) {
					map.at<Vec3b>(i, j)[0] = 255;
					map.at<Vec3b>(i, j)[1] = 255;
					map.at<Vec3b>(i, j)[2] = 255;
				}
			}
		}
	}

	imwrite("map.jpg", map);   // 保存
	//imshow("map", map);       // 显示
	waitKey(0);
	return;
}

在这里插入图片描述

### 回答1: MATLAB是一种常用于科学计算和数据可视化的编程语言和环境。在MATLAB中,可以使用各种函数和工具来创建棋盘图片。 首先,我们需要定义一个矩阵来表示棋盘。矩阵的每个元素可以表示一个方的颜色或属性。例如,我们可以用0表示白色方,用1表示黑色方。 然后,我们可以使用MATLAB的绘图函数来绘制棋盘图片。一种简单的方法是使用image函数。我们可以将矩阵作为输入,并设置颜色映射以确定方的颜色。例如,我们可以使用colormap函数来设置一个灰度颜色映射,让0对应白色,1对应黑色。 另一种方法是使用patch函数。patch函数可以根据坐标和属性信息绘制多边形。在我们的情况下,每个方可以看作是一个正方形。我们可以通过指定每个正方形的左下角坐标和边长来定义每个方的位置和大小。 最后,我们可以使用一些额外的函数和选项来美化绘制的棋盘图片。例如,我们可以设置坐标轴的范围,添加标题和标签,调整方的大小和颜色等等。 在MATLAB中创建棋盘图片的具体实现方式有很多种,并且可以根据具体需求进行调整和扩展。通过使用MATLAB的各种功能和工具,我们可以方便地生成高质量的棋盘图片,并进行各种形式的数据分析和可视化。 ### 回答2: MATLAB是一种功能强大的编程语言和环境,可广泛用于科学计算和数据可视化。我们可以使用MATLAB生成棋盘图片。 首先,我们需要创建一个矩阵来表示棋盘。这个矩阵的维度可以根据我们的需求来确定,例如8×8的标准棋盘。 接下来,我们可以使用MATLAB的图形绘制功能来完成棋盘的绘制。可以使用循环来依次绘制每个方。我们可以使用不同的颜色来表示不同的方,例如黑色和白色。 在每个循环迭代中,我们可以使用绘制矩形的函数(如rectangle)来绘制方。可以根据当前方的行号和列号来计算方的位置和颜色。例如,奇数行和奇数列的方可以被填充为黑色,偶数行和偶数列的方可以被填充为白色。 完成所有方的绘制后,我们可以使用MATLAB的图像保存功能将结果保存为一个图片文件(如PNG或JPEG式)。 通过以上步骤,我们可以使用MATLAB生成一个棋盘图片。我们可以根据需要调整棋盘的大小和颜色。这种方法灵活简便,并且可以通过修改代码来生成不同规和样式的棋盘图片。 ### 回答3: Matlab棋盘图片生成可以通过使用Matlab的绘图函数来实现。以下是一个简单的300字中文回答: 在Matlab中,我们可以使用一些绘图函数来生成棋盘图片。首先,我们需要创建一个空的图像矩阵,可以使用Matlab的zeros函数来实现: ```matlab img = zeros(400, 400); ``` 这里,我创建了一个400x400的图像矩阵。接下来,我们可以使用一个循环来绘制棋盘的图案。循环中可以使用两个嵌套的for循环来设置每个子的颜色: ```matlab for i = 1:8 for j = 1:8 if mod(i+j, 2) == 0 img(((i-1)*50+1):(i*50), ((j-1)*50+1):(j*50)) = 255; else img(((i-1)*50+1):(i*50), ((j-1)*50+1):(j*50)) = 0; end end end ``` 在这个例子中,我假设每个子的大小是50x50像素。在每一次循环中,我使用mod函数判断当前子的行号和列号的和的奇偶性。如果是偶数,我将这个子的像素值设置为255(白色),否则设置为0(黑色)。 最后,我们可以使用imshow函数将图像显示出来: ```matlab imshow(img); ``` 这样,我们就生成了一个简单的棋盘图片。你可以根据自己的需求来调整子的大小、行列数、颜色等参数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值