我愿意使用色彩图在 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 种颜色。这是否意味着 colorgram 返回了图像中存在的所有颜色?
最佳答案
只需为 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
关于python - 使用颜色图从图像中提取所有颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67121930/