所以我正在做一个关于在python中使用图像对象的家庭作业。我使用python3.4.1来完成这个任务。我觉得我什么都做了,但它不想正常工作。基本上,我想让它看起来像我所附的图片,但它只显示为一条红线,一条红线从上到下的白色背景。 任何帮助都将不胜感激
附加图像: http://imgur.com/TMho41w
import cImage as image
width = 500
height = 500
img = image.EmptyImage(width, height)
win = image.ImageWin("Exercise 3", width, height)
img.draw(win)
for row in range(height):
for col in range(width):
p = img.getPixel(col, row)
if row == 0 or col == 0:
p = image.Pixel(255, 0, 0)
else:
Sum = 0
temppixel = img.getPixel(col-1, row)
if temppixel.getRed() == 255:
Sum = Sum + 1
elif temppixel.getBlue() == 255:
Sum = Sum + 2
temppixel = img.getPixel(col-1, row-1)
if temppixel.getRed() == 255:
Sum = Sum + 1
elif temppixel.getBlue() == 255:
Sum = Sum + 2
temppixel = img.getPixel(col, row-1)
if temppixel.getRed() == 255:
Sum = Sum + 1
elif temppixel.getBlue() == 255:
Sum = Sum + 2
if Sum % 3 == 1:
p = image.Pixel(255, 0, 0)
elif Sum % 3 == 2:
p = image.Pixel(0, 0, 255)
else:
p = image.Pixel(255, 255, 255)
img.setPixel(col, row, p)
img.draw(win)
img.draw(win)
# uncomment this to save the image as a file
#img.saveTk("gradient.gif")
win.exitonclick()
不幸的是,您的代码与您编写的代码完全相同。让我们把前三个
if ... elif
条件命名为1、2和3:row = 0
,这意味着条件2和3使用了无效的坐标(因为row-1
)。所以这里只有一个条件,它总是增加1sum
,这意味着它将添加一个新的红色像素李>sum = 1
,这意味着一个新的红色像素。从上到下都有红线row = 1
和col = 1
开始,所有的邻居都是红色的,这就产生了一个新的白色像素。不幸的是,白色确实包含一些红色,所以它总是满足同样的条件,你有你的白色背景李>我还没有找到完整的算法,这种方法来建立一个Sierpinski地毯,所以我不能真正纠正它。但是在这种情况下,你应该格外小心:如果你在第一行或第一排,三个邻居应该是什么
相关问题 更多 >
编程相关推荐