用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
以下是实现情况:
使用的图片-
# 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)