Python problemas de conversión de formato de imagen ecosistema (recomendado)

En el ecosistema Python, la biblioteca más común es la imagen PIL-- a pesar de que ha sido sustituida por la almohadilla posterior, una almohada, pero debido a que el API se hereda casi por completo el PIL, por lo que todavía convención ser llamados PIL. Además de PIL, más y más programadores acostumbrados a utilizar OpenCV para manipular la imagen. Además, en la biblioteca de interfaz gráfica de usuario, no se definen respectivo mecanismo de procesamiento de imágenes, tales como wxPyton, como el procesamiento de imágenes clase wx.Image definido, visualización de la imagen como de clase wx.Bitmap definido.

La figura PIL desentrañar la lectura de archivos de imagen y escribir, leer y escribir el cv2 archivo de imagen, objetos PIL CV2 y objetos de conversión, los objetos y los objetos PIL conversión wx.Image, y un método numpy imágenes gama de vuelco. Dominado estos métodos, lo suficiente como para hacer frente a una amplia variedad de necesidades de procesamiento de imágenes.Aquí Insertar imagen Descripción

  1. PIL para leer y escribir archivos de imagen

El código siguiente muestra el archivo de imagen en formato png de lectura con el PIL, excluyendo el canal alfa archivo de imagen de formato jpg volcado.

>>> from PIL import Image
>>> im = Image.open(r'D:\CSDN\Python_Programming.png')
>>> r,g,b,a = im.split()
>>> im = Image.merge("RGB",(r,g,b))
>>> im.save(r'D:\CSDN\Python_Programming.jpg')
  1. CV2 leer y escribir archivos de imagen

El código siguiente ilustra el formato de un archivo de imagen PNG cv2 de lectura, un formato jpg volcado en un archivo de imagen.

>>> import cv2
>>> im = cv2.imread(r'D:\CSDN\Python_Programming.png')
>>> cv2.imwrite(r'D:\CSDN\Python_Programming.jpg', im)
True
  1. PIL objetos y objetos Huzhuan cv2

Formato de objeto CV2, matriz esencialmente numpy, que es objeto numpy.ndarray. Mientras el objeto puede hacer PIL y la conversión array numpy, naturalmente lograr una objetos PIL y objetos conversión del sistema CV2.

El código siguiente ilustra el formato PNG con PIL leer el archivo de imagen se convierte en un archivo de imagen guardado gama numpy.

>>> import cv2
>>> from PIL import Image
>>> import numpy as np
>>> im_pil = Image.open(r'D:\CSDN\Python_Programming.png')
>>> im_cv2 = np.array(im_pil)
>>> cv2.imwrite(r'D:\CSDN\Python_Programming.jpg', im_cv2)
True

El siguiente código es leído por el archivo de imagen PNG CV2, guardado como un archivo de imagen convertidos en objetos PIL.

>>> import cv2
>>> from PIL import Image
>>> im_cv2 = cv2.imread(r'D:\CSDN\Python_Programming.png')
>>> im_pil = Image.fromarray(im_cv2)
>>> im_pil.save(r'D:\CSDN\Python_Programming.jpg')
  1. PIL objetos y objetos Huzhuan wx.Image

Estos son dos funciones para lograr los objetos PIL y wx.Image de la conversión del sistema objeto.

def PilImg2WxImg(pilImg):
  '''PIL的image转化为wxImage'''
  image = wx.EmptyImage(pilImg.size[0],pilImg.size[1])
  image.SetData(pilImg.convert("RGB").tostring())
  image.SetAlphaData(pilImg.convert("RGBA").tostring()[3::4])
  return image
def WxImg2PilImg(wxImg):
  '''wxImage转化为PIL的image'''
  pilImage = Image.new('RGB', (wxImg.GetWidth(), wxImg.GetHeight()))
  pilImage.fromstring(wxImg.GetData())
  if wxImg.HasAlpha():
    pilImage.convert( 'RGBA' )
    wxAlphaStr = wxImg.GetAlphaData()
    pilAlphaImage = Image.fromstring( 'L', (wxImg.GetWidth(), wxImg.GetHeight()), wxAlphaStr )
    pilImage.putalpha( pilAlphaImage )
  return pilImage
  1. Dump matriz de imagen numpy

El siguiente código, generando una imagen aleatoria es 515x512 píxeles.

>>> from PIL import Image
>>> import numpy as np
>>> a = np.random.randint(0,256,((512,512,3)), dtype=np.uint8)
>>> im_pil = Image.fromarray(a)
>>> im_pil.save(r'D:\CSDN\random.jpg')

Aquí Insertar imagen Descripción
resumen

Lo anterior es una pitón problemas de conversión de formato de imagen ecosistema Xiaobian introducir, queremos ayuda
contenido en más de cuántos, y finalmente a recomendar una buena reputación en el número de instituciones públicas [] programadores, hay una gran cantidad de técnicas de estudio de veteranos, la experiencia de aprendizaje, habilidades de la entrevista, la experiencia laboral y otra acción, cuanto más preparado cuidadosamente la información introductoria de base cero en los datos reales del proyecto, el programador tiene que explicar el calendario de la tecnología Python todos los días, compartir algunos métodos de aprendizaje y necesita atención pequeños detallesAquí Insertar imagen Descripción

Publicado 35 artículos originales · ganado elogios 1 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/chengxun02/article/details/105029720
Recomendado
Clasificación