numpy.array()没有将tiff图像转换为2D数组

时间:2017-11-29 23:07:10

标签: python arrays image numpy tiff

我一直试图弄清楚为什么numpy.array()方法将我的tiff图像转换为对象(dtype = object)。我尝试了其他tiff图像,我没有遇到这个问题。我很确定它必须对我的" actin2.tif"获得图像。我只需要能够将这个特定的tiff图像转换为2D数组。这就是我的代码:

>>> import numpy
>>> from PIL import Image
>>> a = Image.open('actin2.tif')
>>> a_array = numpy.array(a)
>>> a
<PIL.TiffImagePlugin.TiffImageFile image mode=I;16B size=37x58 at 0x14BBC68>
>>> a_array
array(<PIL.TiffImagePlugin.TiffImageFile image mode=I;16B size=37x58 at 0x14BBC68>, dtype=object)

我最终需要能够操纵图像中像素的值,如果不将图像转换为2D数组,我就无法做到这一点。目前,这是我尝试操作数组时抛出的错误:

structure_masked = numpy.multiply(structure_mask,image)
TypeError: unsupported operand type(s) for *: 'bool' and 'instance'

这是这行代码的结果:

structure_masked = numpy.multiply(structure_mask,image)

&#34; structure_mask&#34;和&#34;图像&#34;以与上述相同的方式转换为numpy数组。

我尝试过更改模式和dtype,但这似乎没有用,有什么建议吗?

1 个答案:

答案 0 :(得分:0)

遇到同样的问题。原来我们正在运行PIL而不是Pillow。这为我们解决了这个问题:

  

sudo pip卸载PIL

     

sudo pip install pillow -U