欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在OpenCV里实现棋盘生成

程序员文章站 2022-05-22 11:21:33
...

在图像的算法处理里,经常要使用一些标准的图像来做测试,比如棋盘图像就是其中之一,它经常使用来测试一些噪声、摄像头校准等等。下面就来使用OpenCV来生成一些棋盘图像,如果你想生成文件,直接使用前面的保存函数就可以了。整个代码如下:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import numpy as np
import cv2
from matplotlib import pyplot as plt


#棋盘生成
def generate_checkerboard(rows_num, columns_num, block_size, base_color):

    block_size = block_size * 4
    image_width = block_size * columns_num
    image_height = block_size * rows_num
    inv_color = tuple(255 - val for val in base_color),

    checker_board = np.zeros((image_height, image_width, 3), np.uint8)
    color_row = 0
    color_column = 0

    for i in range(0, image_height, block_size):
            color_row = not color_row
            color_column = color_row

            for j in range(0, image_width, block_size):
                checker_board[i:i+block_size, j:j +
                            block_size] = base_color if color_column else inv_color
                color_column = not color_column

    return checker_board
#
b1 = generate_checkerboard(3,3, 30, (255,255,255))
cv2.imshow('checkerboard', b1)

b2 = generate_checkerboard(3,9, 20, (255,255,255))
cv2.imshow('checkerboard2', b2)
#
cv2.waitKey(0)
cv2.destroyAllWindows()
 

结果输出如下:

 

在OpenCV里实现棋盘生成

在OpenCV里实现棋盘生成

 

 

玩转人工智能库-深入浅出OpenCV
https://edu.csdn.net/course/detail/26616

 

Python游戏开发入门

http://edu.csdn.net/course/detail/5690
 

你也能动手修改C编译器

http://edu.csdn.net/course/detail/5582