我最近遇到了一个至少需要基本图像处理程度的问题,我可以在 Python 中做到这一点,如果可以,用什么?
8 回答
最著名的图书馆是PIL。但是,如果您只是简单地进行基本操作,则最好使用ImageMagick的 Python 绑定,这将比在 Python 中编写转换更有效。
根据“图像处理”的含义,更好的选择可能是基于 numpy 的库:mahotas、scikits.image或scipy.ndimage。所有这些工作都基于 numpy 数组,因此您可以混合和匹配来自一个库和另一个库的函数。
我启动了网站http://pythonvision.org,其中包含有关这些的更多信息。
您还有一种基于“标准”科学模块的图像处理方法:SciPy有一个专用于图像处理的完整包:scipy.ndimage。Scipy 实际上是标准的通用数值计算包;它基于事实上的标准数组操作模块NumPy:图像也可以作为数字数组进行操作。至于图像显示,Matplotlib(也是“科学三部曲”的一部分)使图像显示变得非常简单。
SciPy 仍在积极维护中,因此它是对未来的良好投资。此外,SciPy 目前也可以与 Python 3 一起运行,而 Python Imaging Library (PIL) 则不能。
还有pycairo,这可能更适合您的需要。
实际上有一个很棒的Python Imaging Library (PIL)。它使您能够更改现有图像,包括抗锯齿功能,并使用文本等创建新图像。您还可以在上述网站上提供的 PIL 手册中找到不错的入门教程。
如果您正在创建自定义图像处理效果,您可能会发现 PythonPixels 很有用。 http://halfhourhacks.blogspot.com/2008/03/pythonpixels.html 它用于编写和试验图像处理。
VIPS 应该很快并且使用多个 CPU:
https://github.com/libvips/libvips/wiki/Speed-and-memory-use