在python中绘制图像网格

时间:2016-06-13 10:42:47

标签: python grid

我在学校进行这项练习,制作一个在现有图像中绘制网格的功能。 draw_grid(img,s,c) img - 图像 s - 线的间距 c - 颜色

    def draw_grid(img, s, c):
        a = s
        b = s
        for i in range(len(img)):
            for j in range(len(img[0])):
                if i == a:
                    img[i][j] = c
            if img[i][j] == c:
                a = a + s
        for i in range(len(img)):
            for j in img[i]:
                if img[i].index(j) == b:
                    img[i][img[i].index(j)] = c
                    b = b + s
        im.visd(img)
    import image as im
    img = im.create(200, 100, (200,200,200))

使用我所拥有的代码只生成水平线。

this is what i`ve got so far:

1 个答案:

答案 0 :(得分:0)

我认为你的问题是if img[i].index(j) == b:,索引返回列表中第一次出现的参数的索引,但是j应该已经是索引了,而不是你要在你的内容中寻找的元素图像。

你的循环似乎太复杂,你不需要a,b或任何'if',如果你使用带有3个参数的范围,第三个参数是增量步骤:

for i in range(0, 10, 2):
    print(i) # print 0, 2, 4, 6, 8

所以你可以有这样的循环:

for i in range(0, len(img), s):
    for j in range(len(img[0])):
        img[i][j] = c
for i in range(0, len(img[0]), s):
    for j in range(len(img)):
        img[j][i] = c