在python中使用pil读取tif图像时出现值错误?
我必须阅读尺寸为2200x2200、类型为uint16的tif图像。我将PIL库与anaconda python结合使用,如下所示:在python中使用pil读取tif图像时出现值错误?,python,python-imaging-library,tiff,Python,Python Imaging Library,Tiff,我必须阅读尺寸为2200x2200、类型为uint16的tif图像。我将PIL库与anaconda python结合使用,如下所示: from PIL import Image img = Image.open('test.tif') img.imshow() 我遇到以下错误:ValueError:tile无法扩展外部图像 原因可能是什么?如何解决?我使用的是anaconda python3.6.1版本问题是PIL希望在文件名末尾看到一个“.tiff”。你有“.tif”。解决方案是将文件重命名
from PIL import Image
img = Image.open('test.tif')
img.imshow()
我遇到以下错误:ValueError:tile无法扩展外部图像
原因可能是什么?如何解决?我使用的是anaconda python3.6.1版本问题是PIL希望在文件名末尾看到一个“.tiff”。你有“.tif”。解决方案是将文件重命名为“test.tiff”。这是因为图像编码中存在错误;TIF文件中的平铺实际上会延伸到图像之外。您可以通过查看互动程序来确认这一点:
img.tile
这将输出如下内容:
[('tiff_lzw',(0,0240240),16,'RGB'),
('tiff_lzw',(240,0480240),94905,'RGB'),
...
(tiff_lzw),(720,960,960,1200,1711985,RGB),,
('tiff_lzw',(96096012001200),1730566,'RGB')]
在我上面的例子中,图像尺寸是1000x1000
像素,但很明显,瓷砖延伸到1200x1200
。可以将图像裁剪为预期大小(丢失一些信息),也可以扩展图像大小以包含所有平铺。请参见此处的示例:
i、 例如,
im.size=(10001000)
或im.tile=[e代表im.tile中的e,如果e[1][2]<1200和e[1][3]<1200]
与Image.open()
相同?对不起,先生,实际上我使用了“Image.open()”,您也可以试试img=Image.open('test.tiff'))
我尝试了sir,但发现文件未找到错误
…尝试以下操作:Image.open(open('test.tif','rb'))对我无效。更可能是一个