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

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

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

让我们通过一步步的实施来了解:

1. 读取一个图像

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

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

2.转换为RGB图像

img.convert('RGB')

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

width, height = img.size

4. 遍历图像的所有像素,并从该像素获得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)))

输出:

(155, 173, 151), (155, 173, 151), (155, 173, 151), (155, 173, 151), (155, 173, 151) ...

5.初始化三个变量

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

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

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的值非常大,这里我们将使用计数变量

再初始化一个变量

count = 0

Divide total color value by count

以下是实现情况:

使用的图片-

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

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

输出:

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程