我正在尝试使用cv2.line方法在图片上创建一个网格现在,我正在做一个for循环,它指向图像的宽度,这样我就可以在图像上画几条垂直线但是,在我运行并编译代码之后,我得到了一个带有蓝色图片的窗口

img = cv2.imread("target.PNG")

height, width, channels = img.shape
for x in range(0, width -1, 1):
     cv2.line(img, (x, 0), (x, height), (255, 0, 0), 1, 1)

cv2.imshow('Hehe', img)
key = cv2.waitKey(0)

现在,这只适用于垂直线我稍后将添加水平的,一旦我得到这个工作它输出的是一个完整的蓝色屏幕,而不是网格我试着根据(x,y)坐标的开始和结束来玩这个数字。

最佳答案:

您正在绘制整个图像的蓝线而不跳过任何像素,请将范围的步长设置为20左右例如:

img = cv2.imread("target.PNG")
GRID_SIZE = 20

height, width, channels = img.shape
for x in range(0, width -1, GRID_SIZE):
     cv2.line(img, (x, 0), (x, height), (255, 0, 0), 1, 1)

cv2.imshow('Hehe', img)
key = cv2.waitKey(0)