我在将较大的TIFF图像重新采样为较小的分辨率时遇到此错误:OSError:[Errno22] Invalid argument: '1.tif'
。
它第一次工作一次,但是我错误地在数组中分配了X和Y的尺寸和值。然后,即使我退回到以前的版本,它也不再起作用。它总是给我这个错误:
文件“ C:\ Users \ Izzul Qudsi \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ PIL \ Image.py”,行1927,在保存中
fp = builtins.open(文件名,“ w + b”)
OSError:[Errno 22]无效的参数:'1.tif'
有时是通过仅更改结果名称而导致的错误;
文件“ C:\ Users \ Izzul Qudsi \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ PIL \ Image.py”,行1927,在保存中
fp = builtins.open(文件名,“ w + b”)
PermissionError:[Errno 13]权限被拒绝:'0.tif'
代码仍会创建结果图像,但是会在过程中间随机停止。
我尝试了很多次,它停在图像的不同部分。 这是代码:
def valueassignment():
s=0
a=[s]
u=0
x=[u]
t=0
b=[t]
v=0
y=[v]
while s < 22288:
s=s+8
a.append(s)
while u < 2786:
u=u+1
x.append(u)
while t < 31418:
t=t+8
b.append(t)
while v < 3927:
v=v+1
y.append(v)
controlx= dict(zip(x,a))
controly= dict(zip(y,b))
RTP400=np.zeros((2787,3928), dtype=np.float32)
RTParray=np.array(RTP.GetRasterBand(1).ReadAsArray(), dtype=np.float32)
x=0
for x in range (0,3928):
y=0
for y in range (0,2787):
d= controlx[x]
e= controly[y]
z=RTParray[d,e]
RTP400 [x][y]=z
y=y+1
x=x+1
maps=PIL.Image.fromarray(RTP400, mode='F')
maps.save('1.tif')