gpt4 book ai didi

php - 如何使用 PHP 找到图像的 "majority colors"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:44 24 4
gpt4 key购买 nike

如何在 PHP 中计算图像的主要颜色?我更愿意将相似颜色的不同深浅组合到一个桶中,例如,所有深浅不一的蓝色都算作“蓝色”。

换句话说,我想要一个获取图像并返回类似于以下简单数组的函数:

"blue":90%, "white":10%

不需要很高的准确度,足以按主色和次主色对图像进行分类。谢谢!

最佳答案

这是一种方法:

1) 定义一组我们称之为质心的颜色——这些是您想要将图像分解成的基本颜色的中间值。您可以使用类似 k-means 的聚类算法来执行此操作, 例如。所以现在你有 100 个质心(桶,你可以把它们想象成),每个质心都是一个 RGB 颜色三元组,你可以手动给它附加一个名字。

2) 为新图像生成直方图:

  • 打开gd中的图片或任何
  • 将其转换为像素值数组(例如使用 imagecolorat )
  • 确定像素值和所有质心之间的距离(euclidean distance 可以)。将每个像素分类为最接近哪个桶。
  • 您的输出是每个像素的质心分配。或者,假设您只需要一个直方图,您可以只计算每个质心出现的次数。

请记住,这种颜色分配有些主观。我不确定是否存在从颜色到名称的明确映射(例如,它是 language dependent )。但是如果你用谷歌搜索,可能会有一个你可以使用的查找表,尽管我还没有找到。

希望这对您有所帮助!

关于php - 如何使用 PHP 找到图像的 "majority colors"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com