Registro de aprendizaje 02: Cómo procesar fácilmente imágenes con el paquete PIL de Python

Cómo procesar fácilmente imágenes con el paquete PIL de python


prefacio

No se recomienda usar el paquete de procesamiento de imágenes cv2 para procesar imágenes aquí, porque no puede acceder a las imágenes en la ruta china, y el valor de lectura es NINGUNO, lo que a veces es muy molesto, por lo que hoy registraré cómo usar el PIL paquete Procesamiento simple de imágenes.


Consejo: El siguiente es el texto de este artículo, y los siguientes casos son para referencia

1. ¿Qué es PIL?

La biblioteca Pillow es una biblioteca de terceros para Python.
En Python2, PIL (Python Imaging Library) es una biblioteca de procesamiento de imágenes muy útil, pero PIL no es compatible con Python3, por lo que alguien (Alex Clark y colaboradores) proporcionaron Pillow, que se puede usar en Python3.

2. Usar pasos

1. Instalar la biblioteca

Aunque Python3 proporciona Pillow, aún instalamos PIL directamente al instalar.

pip install pillow

2. Importar biblioteca

El código es el siguiente (ejemplo):

from PIL import Image

3. Leer datos

El código es el siguiente (ejemplo):

	img = Image.open("E:/数据集/0426b97_45d.jpg")	#这里都是绝对地址的写法,也可以写成E:\\数据集\\guofeng1\\0426b97_45d.jpg
	img.show()												#展示图片

4. Lee el tamaño de la imagen.

La imagen leída aquí no tiene forma, solo tamaño, que se puede leer de la siguiente manera:

a = img.size		#输出为(1224, 1024)

También se puede asignar a otras variables:

a = img.size		#a被赋值(1224, 1024)
a = img.size[0]		#a被赋值1224
a = img.size[1]		#a被赋值1024

Tenga en cuenta que el número de canales no se puede ver aquí, si desea verlo, puede verlo a través del siguiente código:

    print(len(img.split()))		#这里将输出3,split将图像颜色通道分成单独的波段,统计其个数就可以得到通道数

5. Escalado de imagen

resize(size, resample=BICUBIC, box=Ninguno, reduce_gap=Ninguno): cambia el tamaño de la imagen y devuelve la imagen redimensionada. Hay 4 parámetros.
size , el tamaño escalado de la imagen, se pasa una tupla (ancho, alto) con una longitud de 2.
resample , resample, es un filtro de remuestreo opcional. Puede pasar en Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING, Image.BICUBIC, Image.LANCZOS. El filtro predeterminado es Imagen.BICUBIC. Establézcalo siempre en Image.NEAREST si el modo de la imagen es '1' o 'P'.
box , el área para escalar la imagen. Pase una tupla (x 1 , y 1 , x 2 , y 2 ) con una longitud de 4. Esta área debe estar dentro del rango (0, 0, ancho, alto) de la imagen original. Si excede el rango, se informará un error.Si no se pasa ningún valor De forma predeterminada, se escalará toda la imagen original. (x 1 , y 1 ) es equivalente a las coordenadas de la esquina superior izquierda del área de recorte, y (x 2 , y 2 ) es equivalente a las coordenadas de la esquina inferior derecha del área de recorte.
reduce_gap , reduciendo la brecha. Pase un número de coma flotante para optimizar el efecto de zoom de la imagen. De forma predeterminada, no se realiza ninguna optimización. Cuando el valor es superior a 3,0, el efecto de optimización es básicamente un remuestreo justo.

img_resize = img.resize((500, 400), resample=Image.LANCZOS, box=(100, 100, 1200, 800), reducing_gap=5.0)

6. Guardar imágenes

img.save('d:/dog.jpg')

Supongo que te gusta

Origin blog.csdn.net/qq_43180908/article/details/116201888
Recomendado
Clasificación