📜  使用Python查找图像中最常用的颜色

📅  最后修改于: 2022-05-13 01:55:42.339000             🧑  作者: Mango

使用Python查找图像中最常用的颜色

先决条件: PIL

PIL 是Python图像库,它为Python解释器提供图像编辑功能。它是由 Fredrik Lundh 和其他几个贡献者开发的。 Pillow 是友好的 PIL 分支,也是一个由 Alex Clark 和其他贡献者开发的易于使用的库。我们将与枕头合作。

让我们通过一步一步的实现来理解:

1.读取图像

为了读取 PIL 中的图像,我们使用Image方法。

# Read an Image
img = Image.open('File Name')

2.转换成RGB图像

img.convert('RGB')

3.获取图像的宽度和高度

width, height = img.size

4.遍历Image的所有像素并从该像素中获取R、G、B

for x in range(0, width):
    for y in range(0, height):
        r, g, b = img.getpixel((x,y))
        print(img.getpixel((x,y)))

输出:

5.初始化三个变量

  • r_total = 0
  • g_total = 0
  • b_total = 0

遍历所有像素并将每种颜色添加到不同的 Initialized 变量。

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)

输出:

(29821623, 32659007, 33290689)

由于我们可以 R, G & B 值非常大,这里我们将使用计数变量

再初始化一个变量

计数 = 0

Divide total color value by count

下面是实现:

使用的图像 –

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 throught 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)


输出:

# Most Used color is Blue
(179.6483313253012, 196.74100602409638, 200.54631927710844)