ust*_*etz 93 python installation dependencies scipy python-imaging-library
我试图用scipy读取图像.但是它不接受这scipy.misc.imread部分.可能是什么原因造成的?
>>> import scipy
>>> scipy.misc
<module 'scipy.misc' from 'C:\Python27\lib\site-packages\scipy\misc\__init__.pyc'>
>>> scipy.misc.imread('test.tif')
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
scipy.misc.imread('test.tif')
AttributeError: 'module' object has no attribute 'imread'
Run Code Online (Sandbox Code Playgroud)
Wil*_*uck 126
您需要安装Pillow(以前称为PIL).从在文档上scipy.misc:
请注意,Pillow不是SciPy的依赖项,但如果没有它,下面列表中指示的图像处理函数将无法使用:
...
imread...
安装Pillow后,我能够访问imread如下:
In [1]: import scipy.misc
In [2]: scipy.misc.imread
Out[2]: <function scipy.misc.pilutil.imread>
Run Code Online (Sandbox Code Playgroud)
小智 65
imread在SciPy 1.0.0中已弃用,将在1.2.0中删除.请imageio.imread改用.
import imageio
im = imageio.imread('astronaut.png')
im.shape # im is a numpy array
(512, 512, 3)
imageio.imwrite('imageio:astronaut-gray.jpg', im[:, :, 0])
Run Code Online (Sandbox Code Playgroud)
mah*_*eju 20
版本1.2.0之后,imread贬值!因此,要解决此问题,我必须安装版本1.1.0。
pip install scipy==1.1.0
Run Code Online (Sandbox Code Playgroud)
Mas*_*edi 15
对于Python 3,最好是使用imread在matplotlib.pyplot:
from matplotlib.pyplot import imread
Run Code Online (Sandbox Code Playgroud)
你需要Python Imaging Library(PIL)但是唉!PIL项目似乎已被放弃.特别是,它还没有被移植到Python 3.所以如果你想在Python 3中使用PIL功能,你可以使用Pillow,它是PIL的半官方分支,似乎是积极开发的.实际上,如果你需要一个现代的PIL实现我会推荐Pillow.这很简单pip install pillow.因为它使用与PIL相同的命名空间,所以它实际上是替代品.
这个叉子怎么"半官方"?你可能会问.Pillow文档的About页面说明了这一点:
随着自上次PIL发布以来的更多时间过去,新PIL发布的可能性降低.但是,我们还没有听到官方的"PIL死了"的消息.因此,如果您仍想支持PIL,请先在此处报告问题,然后在此处打开相应的Pillow门票.
请提供第一张票的链接,以便我们跟踪上游的问题.
然而,官方PIL网站上最新的PIL发布时间是2009年11月15日.我认为我们可以安全地宣布Pillow是PIL的继任者(在撰写本文时)将近八年没有新发布.因此,即使您不需要Python 3支持,我建议您避免在PyPI中使用古老的PIL 1.1.6发行版,只需安装新的,最新的兼容Pillow.
小智 8
正如回答 misc.imread 在 SciPy 1.0.0 中已弃用,并将在 1.2.0 中删除。imageio 是一种选择,它将返回类型的对象:
<class 'imageio.core.util.Image'>
Run Code Online (Sandbox Code Playgroud)
但不是 imageio,而是使用 cv2
import cv2
im = cv2.imread('astronaut.png')
Run Code Online (Sandbox Code Playgroud)
我将是类型:
<class 'numpy.ndarray'>
由于 numpy 数组的计算速度更快。
如果有人遇到相同的问题,请卸载scipy并安装scipy == 1.1.0
$ pip uninstall scipy
$ pip install scipy==1.1.0
Run Code Online (Sandbox Code Playgroud)
通过以下命令安装枕头库:
pip install pillow
Run Code Online (Sandbox Code Playgroud)
请注意,所选答案已过时。查看SciPy的文档
请注意,Pillow(https://python-pillow.org/)不是SciPy的依赖项,但是如果没有它,下面列表中指示的图像处理功能将不可用。