此代码用于将系列图像合并为大图像。
masks=glob(temp_path+'*.jpg')
mm=[]
img_dim=32
w=int(prex[5])
h=int(prex[4])
target = Image.new('RGB',(w*img_dim,h*img_dim))
for i,p in enumerate(masks):
print(i)
mask=Image.open(p)
mask=mask.resize((32,32))
x=int(i%w)
y=int(i/w)
target.paste(mask,(x*img_dim,y*img_dim,(x+1)*img_dim,(y+1)*img_dim))
target.save('F:/pa_slice/output/0/'+name+'_'+sub_name+'_mask.jpg')
图像名称从4M01_00_mask.jpg
到4M15_50_mask.jpg
。奇怪的行为是,当我运行此代码时,它将在OS Error
函数中抛出target.save()
。
也就是说,如果我多次运行此代码,它将在不同的图像处停止。如果我很幸运,它甚至可以正常运行:)这是常见的错误:
OSError: [Errno 22] Invalid argument: 'F:/pa_slice/output/0/4M15_0_mask.jpg'
我真的不知道该如何处理:(
答案 0 :(得分:0)
好吧,我将target.save()
函数放在循环之外,并且可以正常工作。可能是频繁的I / O操作导致问题。