¿Se puede utilizar Python para procesar imágenes?
Sí,
PythonWare proporciona un kit de herramientas gratuito de procesamiento de imágenes de Python PIL (Biblioteca de imágenes de Python), que proporciona funciones básicas de procesamiento de imágenes, como:
p>
Cambiar el tamaño de la imagen, rotarlas, convertir el formato de la imagen, convertir el espacio del campo de color, mejorar la imagen, procesar histogramas, interpolar y filtrar, etc. Aunque este paquete de software no es adecuado para implementar algoritmos complejos de procesamiento de imágenes similares a los de MATLAB, las capacidades de desarrollo rápido de Python y sus características orientadas a objetos lo hacen muy adecuado para el desarrollo de prototipos.
En PIL, cualquier imagen está representada por un objeto Imagen, y esta clase es exportada por el módulo con el mismo nombre. Por lo tanto, la forma más simple es así:
importar Imagen. img = Image.open(“dip.jpg”)
Nota: La imagen en la primera línea es el nombre del módulo; img en la segunda línea es un objeto Imagen
La imagen; La clase se define en el módulo Imagen. En cuanto al módulo Imagen y la clase Imagen, recuerda no confundirlos. Ahora, podemos realizar varias operaciones en img. Todas las operaciones
en img eventualmente se reflejarán en la imagen dip.img.
PIL proporciona una gran cantidad de módulos funcionales: Image, ImageDraw, ImageEnhance, ImageFile, etc. Los módulos más utilizados son
Image, ImageDraw e ImageEnhance. Presentaré cada uno de estos a continuación. Consulte la documentación para el uso de otros módulos. El paquete de software PIL y la documentación relacionada están disponibles en el sitio de PythonWare www.Pythonware.com.
Módulo de imagen:
El módulo de imagen es el módulo más básico de PIL, que exporta la clase Imagen. Un objeto de instancia de clase Imagen corresponde a una imagen. Al mismo tiempo, el módulo Imagen también proporciona muchas funciones útiles.
(1) Abra un archivo:
importar imagen img = Image.open("dip.jpg")
Esto devolverá un objeto de instancia de clase Imagen , todas las operaciones posteriores se completan en img.
(2) Ajustar el tamaño del archivo:
importar imagen img = Image.open("img.jpg") new_img = img.resize
((128,128 ),Image.BILINEAR) new_img.save("new_img.jpg")
El tamaño de la imagen original es 256x256, ahora, el tamaño del new_img.jpg guardado es 128x128.
Es así de simple. Lo que hay que explicar es que Image.BILINEAR especifica el uso del método bilineal para interpolar píxeles.
En el procesamiento por lotes o tareas simples de procesamiento de imágenes de Python, usar una combinación de Python y PIL (Biblioteca de imágenes de Python) para completar las tareas de procesamiento de imágenes es una muy buena opción. Imagine una tarea que requiera aumentar el contraste en un factor de 2 para todas las imágenes de una carpeta. Sería muy sencillo hacerlo en Python. Por supuesto, debo admitir que Python todavía es relativamente débil en el procesamiento de imágenes y, obviamente, no es adecuado para aplicaciones más complejas como el filtrado y la extracción de características. Mi opinión personal es que cuando quieras implementar estos algoritmos "avanzados", déjalo en manos de MATLAB. Sin embargo, si se enfrenta a una tarea común de procesamiento de imágenes que no requiere algoritmos muy complejos, entonces el procesamiento de imágenes de Python debería ser su mejor socio.