2013-03-04 5 views
0

Я получаю, что нет достаточных аргументов для форматирования строки, каких-либо предложений? Он находится в строке f.write else (52). Это принимает среднее значение пикселя и заменяет его вторым изображением. Как видите, файл читает оба изображения и записывает их. Во время процесса записи я получаю сообщение о том, что аргументов для форматирования строки недостаточно.Обработка изображений на Python

def main(): 
f = open("BoardHappy.ppm","r") 
lines = f.readlines() 
kinds = lines[0] 
size=lines[1].split() 
width=int(size[0]) 
height=int(size[1]) 
depth = int(lines[2]) 

red=[] 
green=[] 
blue=[] 
for i in range(3, len(lines)): 
    temp = lines[i].split() 
    for j in range(0, len(temp) ,3): 
     red.append(int(temp[j])) 
     green.append(int(temp[j+1])) 
     blue.append(int(temp[j+2])) 
f.close() 

f = open("Godzilla.ppm","r") 
lines = f.readlines() 
kinds = lines[0] 
size=lines[1].split() 
width=int(size[0]) 
height=int(size[1]) 
depth = int(lines[2]) 

red1=[] 
green1=[] 
blue1=[] 
for i in range(3, len(lines)): 
    temp = lines[i].split() 
    for j in range(0, len(temp), 3): 
     red1.append(int(temp[j])) 
     green1.append(int(temp[j+1])) 
     blue1.append(int(temp[j+2])) 
f.close() 


f = open("lab5.ppm","w") 
f.write("P3 \n") 
width=720 
height=540 
f.write("%d %d \n"%(width,height)) 
f.write("255 \n") 
for i in range(width*height): 
    new = (red[i]+green[i]+blue[i])/3.0 
    if new >=100: 
     f.write("%d %d %d/n"% red[i], green[i],blue[i]) 
    else: 
     f.write("%d %d %d/n"% red1[i], green1[i], blue1[i]) 

f.close() 

main() 

ответ

1

Вы должны скобки:

f.write("%d %d %d/n"% (red[i], green[i],blue[i])) 
+0

Ничего себе, я чувствую себя глупо. Спасибо – user2105564

+0

Я уверен, что это круглые скобки ... – ApproachingDarknessFish

Смежные вопросы