Encuentre los colores más utilizados en la imagen usando Python

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)

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *