2008-09-18 18 views
79

Recientemente me he encontrado con un problema que requiere al menos un grado básico de procesamiento de imagen, ¿puedo hacerlo en Python y, de ser así, con qué?Procesamiento de imágenes, en Python?

+4

en tiempo real de procesamiento de imágenes utilizando PyPy: http://morepypy.blogspot.com/2011/07/ realtime-image-processing-in-python.html – Mikhail

Respuesta

51

La biblioteca más conocida es PIL. Sin embargo, si simplemente está haciendo una manipulación básica, probablemente esté mejor con los enlaces de Python para ImageMagick, que será mucho más eficiente que escribir las transformaciones en Python.

+7

Creo que tienes eso atrasado: PIL proporciona solo la funcionalidad barebones más básica, pero se integra muy bien a las GUI de Python. La mensajería instantánea es tremendamente más completa, pero requiere un poco de trabajo manual para intercambiar memorias intermedias para integrarlas con una GUI. – SilverbackNet

+19

Digámoslo de esta manera, triste pero ** PIL parece ser abandono-ware ** y ni siquiera carga archivos BMP creados con Paint. Si revisa la página web del proyecto, lo descubrirá, busque el rastreador de errores (ninguno), la actividad de la lista de correo, SCM, ... – sorin

+18

[Pillow] (https://pypi.python.org/pypi/Pillow/ 2.1.0) es una bifurcación de PIL que se está manteniendo y desarrollando. Probablemente sea mejor usarlo en su lugar. –

6

En realidad, hay un maravilloso Python Imaging Library (PIL). Le da la capacidad de alterar las imágenes existentes, incluidas las capacidades de anti-aliasing, y crear nuevas imágenes con texto y tal. También puede encontrar un decent introductory tutorial en el manual de PIL proporcionado en el sitio mencionado anteriormente.

+9

¿Utilizaste Google antes de hacer esta pregunta? :-) No estoy diciendo que debas_, solo que parece un poco gracioso responder tu propia pregunta en menos de un minuto. –

+5

La idea general de este sitio es proporcionar pares de (preguntas y respuestas) que servirán como información útil para alguien que esté buscando el tema. Se recomienda que si descubres algo útil que no conocías antes y que aún no está en el sitio, lo compartas con StackOverflow. – akdom

+8

De las preguntas más frecuentes: También es perfectamente correcto preguntar y responder a su propia pregunta de programación, pero pretenda que está en Jeopardy: formémoslo en forma de pregunta. Aunque, creo que cualquier persona necesitada puede responder fácilmente a esta pregunta a través de una búsqueda en Google ... –

7

También hay pycairo, que pueden ser más adecuados según sus necesidades.

18

También tiene un enfoque para el procesamiento de imágenes basado en módulos científicos "estándar": SciPy tiene un paquete completo dedicado al procesamiento de imágenes: scipy.ndimage. Scipy es en efecto el paquete estándar de cálculos numéricos generales; se basa en el módulo de manipulación de matriz estándar de facto NumPy: las imágenes también se pueden manipular como una matriz de números. En cuanto a la visualización de imágenes, Matplotlib (también forma parte de la "trilogía de la ciencia") hace que se muestren las imágenes quite simple.

SciPy todavía se mantiene activamente, por lo que es una buena inversión para el futuro. Además, SciPy actualmente también se ejecuta con Python 3, mientras que la Biblioteca de imágenes de Python (PIL) no funciona.

+0

Para referencia futura, ndimage requiere PIL de todos modos. – notJim

+1

@notJim: ¿verdad? PIL no aparece en las dependencias de SciPy por MacPorts, y puedo hacer 'import scipy' sin instalación PIL (' import Image' falla con 'ImportError'). – EOL

+2

Sí, cuando intenté leer una imagen con ImRead, recibí el error "raise ImportError (" Could not imported the Python Imaging Library (PIL) "" – notJim

43

Dependiendo de lo que quiere decir con "procesamiento de imágenes", una mejor opción podría estar en las bibliotecas basadas en numpy: mahotas, scikits.image, o scipy.ndimage. Todos estos funcionan basados ​​en matrices numpy, por lo que puede mezclar y combinar funciones de una biblioteca y otra.

Comencé el sitio web http://pythonvision.org que tiene más información sobre esto.

+0

"The scikits.image SciKit (toolkit para SciPy) extiende scipy.ndimage para proporcionar un conjunto versátil de rutinas de procesamiento de imágenes. "Me pregunto por qué no contribuyeron directamente con ndimage. – endolith

+1

Todos estos paquetes tienen estructuras internas diferentes. Al menos mi paquete, mahotas, tomó una gran cantidad de código de ndimage, sin embargo. – luispedro

+0

'scikit-image' ahora está alojado en http://scikit-image.org –

Cuestiones relacionadas