Python制作指定行列的棋盘格
这段时间在做相机的标定,所以想用Python+OpenCV制作一个可以直接生成想要的棋盘格的程序。嗯,就是理由,看代码吧!
import cv2
import numpy as np
def main_process():
block_row = 12 # 棋盘格行数
block_col = 9 # 棋盘格列数
block_width = 50 # 格子大小
checker_img = np.zeros((block_row*block_width,block_col*block_width)) # 生成底图
white_block = np.full((block_width,block_width),255) # 方格填充,不断在底图的指定位置放置白色方框形成棋盘格
for row in range(block_row):
for col in range(block_col):
if (row+col)%2==0:
row_begin = row*block_width
row_end = row_begin+block_width
col_begin = col*block_width
col_end = col_begin+block_width
checker_img[row_begin:row_end,col_begin:col_end] = white_block
cv2.imwrite('./'+str(block_row)+'x'+str(block_col)+'Checkerboard.jpg',checker_img)
cv2.imshow("checker_board",checker_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
if __name__ == '__main__':
main_process()
这个代码,通过手动输入棋盘格的行列数目,以及方格的大小后,在同级目录下生成想要的棋盘格。比如上面的程序就是生成12行9列的棋盘格