Requisito previo:
PIL es la biblioteca de imágenes de Python que proporciona al intérprete de Python capacidades de edición de imágenes. Fue desarrollado por Fredrik Lundh y varios otros colaboradores. Pillow es la bifurcación amigable de PIL y una biblioteca fácil de usar desarrollada por Alex Clark y otros colaboradores. Estaremos trabajando con Pillow.
Entendamos con la implementación paso a paso:
1. Leer una imagen
Para leer la imagen en PIL, usamos el método de imagen .
# Read an Image img = Image.open('File Name')
2. Convertir en imagen RGB
img.convert('RGB')
3. Obtenga el ancho y alto de la imagen
width, height = img.size
4. Iterar a través de todos los píxeles de la imagen y obtener el valor R, G, B de ese píxel
for x in range(0, width): for y in range(0, height): r, g, b = img.getpixel((x,y)) print(img.getpixel((x,y)))
Producción:
(155, 173, 151), (155, 173, 151), (155, 173, 151), (155, 173, 151), (155, 173, 151)…
5. Inicializar tres variables
- r_total = 0
- g_total = 0
- b_total = 0
Iterar a través de todos los píxeles y agregar cada color a una variable inicializada diferente.
r_total = 0 g_total = 0 b_total = 0 for x in range(0, width): for y in range(0, height): r, g, b = img.getpixel((x,y)) r_total += r g_total += g b_total += b print(r_total, g_total, b_total)
Producción:
(29821623, 32659007, 33290689)
Como podemos, el valor R, G & B es muy grande, aquí usaremos la variable de conteo
Inicializar una variable más
cuenta = 0
Divide total color value by count
A continuación se muestra la implementación:
Imagen utilizada –
Python3
# Import Module from PIL import Image def most_common_used_color(img): # Get width and height of Image width, height = img.size # Initialize Variable r_total = 0 g_total = 0 b_total = 0 count = 0 # Iterate through each pixel for x in range(0, width): for y in range(0, height): # r,g,b value of pixel r, g, b = img.getpixel((x, y)) r_total += r g_total += g b_total += b count += 1 return (r_total/count, g_total/count, b_total/count) # Read Image img = Image.open(r'C:\Users\HP\Desktop\New folder\mix_color.png') # Convert Image into RGB img = img.convert('RGB') # call function common_color = most_common_used_color(img) print(common_color) # Output is (R, G, B)
Producción:
# Most Used color is Blue (179.6483313253012, 196.74100602409638, 200.54631927710844)