我试图创建一个过滤器来移动图片。 示例:第一个像素从下一个像素获取颜色,但最后一个像素从第一个像素获取颜色。你知道吗
我尝试用python3.6.8和pillow库创建这个过滤器。你知道吗
from PIL import Image
from time import sleep
import random
size1=1024
size2=1024
img_1 = Image.new( 'RGB', (size1,size2), "black") # create a new black image
pixels = img_1.load() # create the pixel map
img_1.show()
for i in range(img_1.size[0]): # for every col:
for j in range(img_1.size[1]): # For every row
pixels[i,j] = (random.randint(0,255), random.randint(0,255), random.randint(0,255)) # set the colour accordingly
img_1.show()
img_2=img_1
pixels2 = img_2.load()
for j in range(img_2.size[0]):
for i in range(img_2.size[1]):
if i<size1+1:
pixels2[i,j] = pixels[i+1,j]
else:
pixels2[255,j] = pixels[0,j]
img_2.show()
回溯(最近一次呼叫): 文件“C:\Users\spyrosamvra\Desktop\Image Processing\Image_专业人员,第23行,在 像素2[i,j]=像素[i+1,j] 索引器:图像索引超出范围
装订好的支票错了。您应该检查
size1-1
,而不是size1+1
。此外,在else
的情况下,您将255
硬编码为列,但是size1
是1024
,因此只使用i
insteat更有意义:您可以使用模表达式进一步简化此过程:
然而,上述方法仍然不起作用,因为在这里您将首先为稍后用于第二次复制操作的像素赋值。您可以通过将第一个像素存储在变量中,然后设置该变量来解决此问题,如:
但是,对于高级图像处理,使用像^{} [PyPi]这样的库可能更有意义。你知道吗
滚动图像有比使用
for
循环更好的方法。你知道吗您可以转换为Numpy数组并使用Numpy的
roll()
documentation如下(未测试):或者可以使用here中的PIL示例。你知道吗
相关问题 更多 >
编程相关推荐