我有一个程序需要对10 .ppm文件进行排序,并平均每行三种颜色(红色,绿色,蓝色)并将它们返回到文件中以创建最终图像。现在,它在第一个for循环开始后第11行给出了一个错误,指出索引错误列表赋值索引超出范围。图像文件以PPM格式存储。文本文件的结构如下: 第一行包含字符串P3。 第二行包含两个整数,以像素为单位给出图像的宽度和高度。我们称之为w和h。 第三行包含一个整数,该整数表示每个像素的红色,蓝色和绿色分量的颜色值所使用的最大值。对于此分配,最大值将始终为255。 文件的其余部分由w×h行组成。这些行中的每一行包含三个整数,表示单个像素的红色,蓝色和绿色分量。这是我到目前为止,任何帮助都会很棒。谢谢!
def imageStacker():
userInput = input('What is the name of the image set you would like to process?: ')
#fileName = str(userInput) + '_'
print(type(userInput))
fileRef = []
content = []
for i in range(10):
fileRef[i] = open(userInput + '_' + str(i +1) + '.ppm', 'r')
for i in range(10):
content[i] = fileRef[i].readlines()
print(list(content))
答案 0 :(得分:0)
您正在尝试分配列表的元素,但列表已被定义为空
fileRef[i] = ...
其中i是0,1,2 ...,但fileref是[]。
也许你想要fileref.append( ... )
?当您添加到列表时,这会增加列表。这同样适用于下一个循环。这可以使用列表推导更简洁地编写 - 请查看lists和comprehensions的基本操作以获取更多信息。