Uno. Notas de estudio
Esta es una biblioteca de funciones que admite el almacenamiento, la visualización y el procesamiento de imágenes. Puede procesar casi todos los formatos de imagen y puede completar operaciones como hacer zoom, recortar, superponer y agregar rayas y texto a las imágenes.
El primero es usar pip para descargar uno:
Tiene muchas subbibliotecas, como: Image, ImageChops, ImageDraw, etc., cada una de las cuales tiene poderes mágicos y desempeña su propio papel,
Por supuesto, lo primero que aprendemos es la clásica sub-biblioteca de imágenes;
Método | Descripción |
Image.open (nombre de archivo) | Cargar archivo de imagen según parámetros |
Image.new (modo, tamaño, color) | Crea una nueva imagen basada en los parámetros dados |
Image.open (StringIO.StringIO (buffer)) | Obtener imagen de cadena |
Image.frombytes (modo, tamaño, datos) | Crea una imagen basada en datos de píxeles |
Image.verify () | Verifique la integridad del archivo de imagen y devuelva una excepción |
Funciones comunes
Lee una foto :
im = Image.open ('test.jpg')
Mostrar una foto :
im.show ()
Guarda la imagen :
im.save ("save.gif", "GIF") #Guardar imagen como formato gif
Ver información de la imagen
im.format, im.size, im.mode
Recorte de imagen:
cuadro = (100,100,500,500)
# Establecer el área a recortar
region = im.crop (box) # En este momento, region es un nuevo objeto de imagen.
Cambiar el tamaño de la imagen
out = img.resize ((128,128)) # redimensionar a 128 * 128 píxeles de tamaño
Rotar la imagen
out = img.rotate (45) #rotate 45 grados en sentido antihorario
Conversión de tipo de imagen
im = im.convert ("RGBA")
Segundo, la miniatura
Tercero, cambia el color
Cuatro, esquema
1 import numpy as np 2 import cv2 3 4 def beauty_face (img): 5 '' ' 6 Dest = (Src * (100-Opacity) + (Src + 2 * GuassBlur (EPFFilter (Src) -Src + 128) -256 ) * Opacidad) / 100; 7 https://my.oschina.net/wujux/blog/1563461 8 '' ' 9 10 dst = np.zeros_like (img) 11 # int value1 = 3, value2 = 1; microdermabrasion Determinación del nivel y nivel de detalle 12 v1 = 3 13 v2 = 1 14 dx = v1 * 5 # Uno de los parámetros de filtrado bilaterales 15 fc = v1 * 12.5 #Uno de los parámetros de filtrado bilaterales 16 p = 0.1 17 18 temp4 = np.zeros_like (img) 19 20 temp1 = cv2.bilateralFilter (img, dx, fc, fc) 21 temp2 = cv2.subtract (temp1, img) 22 temp2 = cv2 .add (temp2, (10,10,10,128 )) 23 temp3 = cv2.GaussianBlur (temp2, (2 * v2-1,2 * v2-1 ), 0) 24 temp4 = cv2.add (img, temp3) 25 dst = cv2.addWeighted (img, p, temp4,1-p, 0.0 ) 26 dst = cv2.add (dst, (10, 10, 10,255 )) 27 return dst 28 29 defbeauty_face2 (src): 30 '' '31 Dest = (Src * (100-Opacity) + (Src + 2 * GuassBlur (EPFFilter (Src) -Src + 128) -256) * Opacity) / 100; 32 '' ' 33 34 dst = np.zeros_like (src) 35 # int valor1 = 3, valor2 = 1; Determinación del grado de dermoabrasión y detalle 36 v1 = 3 37 v2 = 1 38 dx = v1 * 5 # Uno de los parámetros de filtrado bilateral 39 V1 * = 12,5 FC # un parámetro de filtrado bilateral 40 P 0,1 = 41 es 42 está Temp4 = np.zeros_like (la src) 43 es 44 es temp1 =cv2.bilateralFilter (src, dx, fc, fc) 45 temp2 = cv2.subtract (temp1, src) 46 temp2 = cv2.add (temp2, (10,10,10,128 )) 47 temp3 = cv2.GaussianBlur (temp2, ( 2 * v2 - 1,2 * v2-1 ), 0) 48 temp4 = cv2.subtract (cv2.add (cv2.add (temp3, temp3), src), (10, 10, 10, 255 )) 49 50 dst = cv2.addWeighted (src, p, temp4,1-p, 0.0 ) 51 dst = cv2.add (dst, (10, 10, 10,255 )) 52 return dst 53 54 55 def init (): 56 img = cv2 .imread ( ' testimg.jpg ') 57 58 # blur1 = cv2.GaussianBlur (img, (5,5), 0) 59 # blur2 = cv2.bilateralFilter (img, 9, 75, 75) 60 blur3 = beauty_face (img) 61 blur4 = beauty_face2 (img) 62 63 cv2.imshow ( ' image0 ' , img) 64 # cv2.imshow ('image1', blur1) 65 # cv2.imshow ('image2', blur2) 66 cv2.imshow ( ' image3 ' , blur3) 67 cv2. imshow ( ' imagen4 ' , desenfoque4) 68 69 # cv2.namedWindow ('image', cv2.WINDOW_NORMAL) 70 # cv2.resizeWindow ('image', 1000, 1000) # 定义 frame 的 大小 71 72 cv2.waitKey (0) 73 cv2.imwrite ( ' result1.png ' , blur3) 74 cv2.imwrite ( ' result2.png ' , blur4) 75 cv2.destroyAllWindows () 76 77 if __name__ == " __main__ " : 78 init ()
Blanqueamiento
GIF