opencv生成圆形标定版程序


#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/opencv.hpp>

using namespace cv;

using namespace std;

#define WINDOW_WIDTH 1200 //定义窗口大小的宏

#define WINDOW_LENTH 1700

#define WINDOW_NAME1 "【绘制图1】" //为窗口标题定义的宏

#define WINDOW_NAME2 "【绘制图2】" //为窗口标题定义的宏

void drawFilledCircle(cv::Mat img, cv::Point center) {

    int thickness = -1;

    int lineType = 8;

    cv::circle(img,

        center,

        WINDOW_WIDTH / 12,

        cv::Scalar(0, 0, 0),

        thickness,

        lineType);

}

int main(void)

{

    //cv::Mat src1(300, 400, CV_8UC3, Scalar(255, 255, 255));

    //cv::imshow("test", src1);

    //创建空白的Mat图像

    //cv::Mat atomImage = cv::Mat::zeros(WINDOW_WIDTH, WINDOW_WIDTH, CV_8UC3, Scalar(255, 255, 255));

    cv::Mat atomImage(WINDOW_WIDTH, WINDOW_LENTH, CV_8UC3, Scalar(255, 255, 255));

    for (int i = 180 + WINDOW_WIDTH / 12; i < WINDOW_LENTH; i = i + WINDOW_WIDTH / 4)

    {

        for (int j = 50 + WINDOW_WIDTH / 12; j < WINDOW_WIDTH; j = j + WINDOW_WIDTH / 4)

        {

            drawFilledCircle(atomImage, cv::Point(i, j));

        }

    }

    //drawFilledCircle(atomImage, cv::Point(WINDOW_WIDTH / 2, WINDOW_WIDTH / 2));

    cv::imwrite("圆形图案.png", atomImage);

    cv::imshow(WINDOW_NAME1, atomImage);

    cv::waitKey(0);

    return(0);

}
 

猜你喜欢

转载自blog.csdn.net/weixin_42258743/article/details/85313722