正如标题所说,我希望能够用遇到的不同像素的最后一个像素来改变像素的颜色。例如,在下面的图片中,我希望能够将橙色像素替换成橙色像素,但是简单地说像素= =黑色,像素=橙色不会起作用,因为我计划将代码应用于更复杂的图片。下面的代码是我最初的尝试:感谢任何帮助!
for y in xrange(image_test.size[1]):
for x in xrange(image_test.size[0]):
currentPixel_2 = image_test.getpixel((x,y))
if currentPixel_2 == (0,0,0):
currentPixel_2 =
答案 0 :(得分:0)
您可以使用变量来保存您遇到的上一个像素的值。
previous_pixel = None
for y in xrange(image_test.size[1]):
for x in xrange(image_test.size[0]):
currentPixel_2 = image_test.getpixel((x,y))
if currentPixel_2 == (0,0,0) and previous_pixel:
image_test.putpixel((x,y), previous_pixel)
else:
previous_pixel = currentPixel_2
我认为大多数线条在这里应该很明显,但基本上,如果你不是黑色像素,你在循环中做的最后一件事是将当前像素分配给previous_pixel
,所以你的下一个通过循环,如果它是黑色的,你可以使用先前的像素值。
行if currentPixel_2 == (0,0,0) and previous_pixel
以防你的第一个像素为黑色,而你还没有previous_pixel
值,我只是跳过它,尽管你可以做你想做的事。第一个像素问题的另一种方法是在开始循环之前为previous_pixel
分配一些值。
另外,顺便说一下,你在这里迭代单个像素,这将是相当慢的。如果你需要加快速度,你可以用numpy来做。