圆形棋盘格制作程序

制作棋盘格保存为图片格式,并且个数间隔半径都可以调节,代码直接附上,另外源代码也会上传上来,另外附上一个可以直接下载网站https://nerian.com/support/resources/patterns/

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>


using namespace cv;
using namespace std;


#define CIRCLE_RADIUS 20 //画圆半径
#define CIRCLE_DISTANCE 100 //两圆之间的距离,必须大于两倍半径
//两个偶数
#define HEIGHT_SIZE  4//竖直方向圆的个数
#define WIDTH_SIZE   6//水平方向圆的个数
//窗口大小
#define WINDOW_HEIGHT 500
#define WINDOW_WIDTH 800
#define WINDOW_NAME1 "【绘制图1】" //为窗口标题定义的宏
#define WINDOW_NAME2 "【绘制图2】" //为窗口标题定义的宏


void drawCircle(cv::Mat img, cv::Point center) 
{
/*第一个参数是图像,第二个参数是圆心坐标,第三个参数是半径,第四个参数是线条颜色,第五个参数表示圆被填充,第六个参数表示线条类型*/
    cv::circle(img, center, CIRCLE_RADIUS, cv::Scalar(0, 0, 0), -1, 8);
}


int main(void)
{
    
    cv::Mat img(WINDOW_HEIGHT, WINDOW_WIDTH, CV_8UC3, Scalar(255, 255, 255));
    for (int i = 0; i < HEIGHT_SIZE; i = i++)
    {
        for (int j = 0; j < WIDTH_SIZE ; j = j++)
        {
            drawCircle(img, cv::Point((WINDOW_WIDTH - (WIDTH_SIZE - 1)*CIRCLE_DISTANCE) / 2 + j * CIRCLE_DISTANCE, (WINDOW_HEIGHT - (HEIGHT_SIZE - 1)*CIRCLE_DISTANCE - CIRCLE_DISTANCE / 2) / 2 + i * CIRCLE_DISTANCE));


        }
    }
    for (int i = 0; i < HEIGHT_SIZE; i = i++)
    {
        for (int j = 0; j < WIDTH_SIZE-1; j = j++)
        {
            drawCircle(img, cv::Point((WINDOW_WIDTH - (WIDTH_SIZE - 1)*CIRCLE_DISTANCE) / 2 + CIRCLE_DISTANCE / 2 + j * CIRCLE_DISTANCE, (WINDOW_HEIGHT - (HEIGHT_SIZE - 1)*CIRCLE_DISTANCE - CIRCLE_DISTANCE / 2) / 2 + CIRCLE_DISTANCE / 2+ i * CIRCLE_DISTANCE));


        }
    }

    //drawFilledCircle(atomImage, cv::Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2));
    cv::imwrite("圆形标定板.bmp", img);
    cv::imshow(WINDOW_NAME1, img);
    cv::waitKey(0);
    return(0);

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值