安装mahotas后无法找到freeimage

5 投票
1 回答
3640 浏览
提问于 2025-04-16 15:22

你好,我是Python的新手,正在学习Python图像教程

我按照教程安装了相关的包,运行下面的代码没有任何错误:

import numpy
import scipy
import pylab
import pymorph
import mahotas
from scipy import ndimage

但是当我尝试读取一张图片时:

image = mahotas.imread('picture_file.jpg')

我遇到了这个问题:

image = mahotas.imread('image_file.jpg')
回溯(最近的调用在最前面):
文件 "", 第 1 行, 在
文件 "/usr/local/lib/python2.6/dist-packages/mahotas-0.6.4-py2.6-linux-i686.egg/mahotas/init.py", 第 68 行, 在 imread
抛出 ImportError('mahotas.imread 依赖于 freeimage. 找不到它. 错误是: %s' % e)
ImportError: mahotas.imread 依赖于 freeimage. 找不到它. 错误是: mahotas.freeimage: 在以下目录中找不到 libFreeImage:
'/usr/local/lib/python2.6/dist-packages/mahotas-0.6.4-py2.6-linux-i686.egg/mahotas', '/lib', '/usr/lib', '/usr/local/lib', '/opt/local/lib'

我尝试安装FreeImagePy,并且可以正常导入,但这并没有解决问题。我还尝试使用sys包添加到Python路径,但也没有帮助。

补充说明:我应该提到,除了pymorph和mahotas之外,其他所有包都是在我的Linux系统上通过'*sudo apt-get install package_name*'安装的,而pymorph和mahotas是通过下载后执行'sudo python setup.py install'安装的。

1 个回答

2

关于mahotas的最新版本的说明

Mahotas本身并没有读取图像的功能。imread其实是一个包装器,它依赖于三种后端之一:

  1. mahotas-imread(也就是 https://pypi.python.org/pypi/imread
  2. FreeImage
  3. matplotlib(只支持PNG和JPEG格式)

所以,你需要安装上面提到的其中一个包。如果你在使用Ubuntu,可以按照下面的说明来安装FreeImage。

如果你是在Windows上运行,建议你试试 Christoph Gohlke的包

原始回答(针对旧版本的mahotas)

你需要安装freeimage才能使用 mahotas.imread(其他功能其实不需要它也能正常工作,它是一个可选的依赖项)。这不是一个Python包,而是一个普通的库。

我不知道你用的是什么系统,但可以试着找找freeimage包。在debian/ubuntu上,你可以直接执行:

sudo apt-get install libfreeimage3

这样你就会在 /usr/lib 或类似的地方找到一个 libfreeimage.so 文件,然后一切就能正常工作了。

撰写回答