图像处理,在Python?

akd*_*dom 81 python image-manipulation image image-processing

我最近遇到了一个问题,至少需要一个基本程度的图像处理,我可以用Python做到这一点,如果有的话,用什么?

Jim*_*Jim 53

最着名的图书馆是PIL.但是,如果您只是进行基本操作,那么使用ImageMagick的Python绑定可能会更好,这比在Python中编写转换更有效.

  • 让我们这样说,悲伤,但**PIL接缝是放弃的**,它甚至不加载用Paint创建的BMP文件.如果您检查项目网页,您将找到它,查找错误跟踪器(无),邮件列表活动,SCM,... (19认同)
  • [Pillow](https://pypi.python.org/pypi/Pillow/2.1.0)是正在维护和开发的PIL的分支.使用它可能更好. (19认同)
  • 我认为你有这个向后:PIL只提供绝对最基本的准系统功能,但它确实很好地集成到Python GUI.IM功能非常全面,但需要一些手动工作交易缓冲来回与GUI集成. (7认同)

lui*_*dro 45

根据"图像处理"的含义,更好的选择可能是基于numpy的库:mahotas,scikits.imagescipy.ndimage.所有这些工作都基于numpy数组,因此您可以混合和匹配来自一个库和另一个库的函数.

我创建了网站http://pythonvision.org,其中包含有关这些内容的更多信息.


Eri*_*got 19

您还可以使用基于"标准"科学模块的图像处理方法:SciPy拥有一整套专用于图像处理的软件包:scipy.ndimage.Scipy实际上是标准的通用数值计算包; 它基于事实上的标准数组操作模块NumPy:图像也可以作为数字数组来操作.至于图像显示,Matplotlib(也是"科学三部曲"的一部分)使显示图像非常简单.

SciPy仍然得到积极维护,因此对未来来说是一项很好的投资.此外,SciPy目前也运行Python 3,而Python Imaging Library(PIL)则不运行.

  • 是的,当我尝试使用ImRead读取图像时,我收到错误"引发ImportError("无法导入Python Imaging Library(PIL)"" (2认同)
  • @notJim:SciPy确实依赖于PIL来进行图像读取(我尝试使用"简单"的JPEG文件,但它的失败与你的例子相同).SciPy仍然可以在没有PIL的情况下进行图像*处理*(PIL是*可选*依赖). (2认同)

sgr*_*ham 7

还有pycairo,根据您的需要可能更合适.


akd*_*dom 6

实际上有一个很棒的Python成像库(PIL).它使您能够更改现有图像,包括抗锯齿功能,并使用文本等创建新图像.您还可以在上述网站上提供的PIL手册中找到一个不错的入门教程.

  • 在问这个问题之前你有没有使用Google?:-)我不是说你_should_,只是在不到一分钟内回答你自己的问题似乎有点好笑. (9认同)
  • 从常见问题解答:询问和回答您自己的编程问题也是完美的,但假装您正在使用Jeopardy:以问题的形式表达它.虽然,我认为有问题的人很快就可以通过谷歌搜索轻松回答这个问题...... (8认同)
  • 这个网站的整个想法是提供(问题,答案)对,这将成为搜索该主题的人的有用信息.如果您发现以前不知道的有用的东西,并且它不在网站上,那么您可以与StackOverflow共享它. (5认同)
  • @MartinW - 我通过谷歌搜索找到了这个问题 (5认同)