2013-03-04 135 views
0

我得到沒有足夠的參數來格式化字符串,有什麼建議嗎?它在else f.write行(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 2013-03-04 01:24:29

+0

我很確定那些是括號...... – ApproachingDarknessFish 2013-03-04 01:37:06