Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用pil读取tif图像时出现值错误?_Python_Python Imaging Library_Tiff - Fatal编程技术网

在python中使用pil读取tif图像时出现值错误?

在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”。解决方案是将文件重命名

我必须阅读尺寸为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”。解决方案是将文件重命名为“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'))对我无效。更可能是一个