我愿意使用颜色图在 python 中获取图像中存在的所有颜色。在文档中,他们没有具体说明这一点。这是我的代码:
import colorgram as cg
color_list = cg.extract("dot-img.jpg", 60)
color_palette = []
for count in range(len(color_list)):
rgb = color_list[count]
color = rgb.rgb
color_palette.append(color)
我在 cg.extract 第二个参数中写了 60。但我没有得到 60 种颜色。这是否意味着色图返回了图像中存在的所有颜色?
答案 0 :(得分:1)
只要给 number_of_colors
变量一个尽可能大的数字。系统会妥善处理。
import colorgram as cg
color_list = cg.extract("dot-img.jpg", 2 ** 32)
color_palette = []
for count in range(len(color_list)):
rgb = color_list[count]
color = rgb.rgb
color_palette.append(color)
colorgram
中的源代码:
def get_colors(samples, used, number_of_colors):
pixels = 0
colors = []
number_of_colors = min(number_of_colors, len(used))
for count, index in used[:number_of_colors]:
pixels += count
color = Color(
samples[index] // count,
samples[index + 1] // count,
samples[index + 2] // count,
count
)
colors.append(color)
for color in colors:
color.proportion /= pixels
return colors