如何将图像路径转换为图像对象我可以使用ImageChops?

时间:2013-01-04 21:25:45

标签: python image-processing python-imaging-library

我正在尝试使用ImageChops将所有.tiff文件一起添加到目录中,但我继续收到错误“IOError:无法识别图像文件”。我认为尝试使用文件路径而不是图像对象只是一个问题,但其他地方的类似代码没有这个问题。

def imadd():  #subcommand
    img1=Image.new('RGB',(2048, 2048))
    img1.save("summation.tif")
    for file in os.listdir(directoryname):
        if fnmatch.fnmatch(file, '*.tif'):
           im2 = Image.open("summation.tif", mode='r')
           im3 = Image.open(os.path.join(directoryname, file))
           finalimg = ImageChops.add(im2, im3, 1, 0)
           finalimg.save("summation.tif") 

通过跟踪和错误,除了以下所有部分都有效:

im3 = Image.open(os.path.join(directoryname,file))。

我也尝试过使用glob.glob(),但仍然会返回相同的错误。

1 个答案:

答案 0 :(得分:0)

虽然您可以使用PIL打开并显示16位tiff,但ImageChops不起作用。 matplotlib和scipy有更多可用的工具。

另外im3 = Image.open(os.path.join(directoryname,file))需要是Image.open(unicode(os.path.join(directoryname,file)))