PHP 或 Imagemagick :图像中主要颜色的数量
Posted
技术标签:
【中文标题】PHP 或 Imagemagick :图像中主要颜色的数量【英文标题】:PHP or Imagemagick : Number of Main Colors From an Image 【发布时间】:2013-02-11 17:53:26 【问题描述】:我的问题 我的客户正在上传图片以穿上 T 恤。我需要知道设计中有多少种主要颜色。我已经尝试过 php 脚本和 Imagemagick ,我似乎无法得到我正在寻找的结果。
此图片有 5 种主要颜色变化。当我使用 imagemagick 的 -unique-colors 时,我得到了大量不同的颜色。是否有一行代码或脚本可用于获得 5 的结果。
这是我用来尝试使用 imagemagick 获得唯一颜色计数的代码,但我可以使用多种颜色。
exec(convert $origimage -unique-colors -scale 1000% $newimage);
【问题讨论】:
但是在打印衬衫时,我只会打印 1 个蓝色和 1 个黄色。对于人眼而言,iamge 看起来像 2 种颜色,但脚本会拾取两种以上的颜色,我想要人眼版本。脚本足够聪明,说有 1 个蓝色变体和 1 个黄色变体。你读过我的问题吗? 我认为,无论图片中有多少真实颜色,您正在寻找的是一种确定“主色”的方法。我建议使用 Paintshop 或 pixlr.com 之类的软件,然后简单地将图像保存为 GIF,并使用 3 种颜色(白色/蓝色/黄色)的简化调色板。 哈哈你在开玩笑吗?您是否阅读了我的问题,或者您只是在编写 cmets 来提高您的声誉?这就是我所说的,我需要在我的问题和我的问题标题中使用主要颜色。我需要通过脚本完成这一切,而不是 Photoshop。 这里有很多重复..on是http://***.com/questions/10290259/detect-main-colors-in-an-image-with-php 我以前见过这个问题并尝试过那个脚本,但我没有得到我想要的结果。该脚本无法成功处理我尝试过的所有图像。 【参考方案1】:阅读此讨论应该可以帮助您: http://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=12818
基本上,您应该使用 imagemagic 生成所用颜色的直方图,并按出现次数(或百分比,如果您愿意)对结果进行排序 然后你可以决定取前 2 行,它应该会给你一个不错的答案。
一种更稳健的算法可能是选择百分比值的阈值,并保持颜色高于此阈值...
我希望这能给你一些线索。
【讨论】:
感谢此信息。我最终根据该论坛的一些信息来操纵解决方案。我基本上用直方图获取每个像素颜色,解析直方图输出,只计算出现在照片 5% 以上的颜色。就我的目的而言,它有效! T 恤的丝网印刷不允许渐变,所以我准备好了!谢谢。 很高兴看到它正在工作。在您的情况下,5% 是一个很好的阈值,但请记住,您可以使其根据输入图像而变化。无论如何,如果它对您有好处,请不要忘记验证答案。 这不是一个足够好的解决方案,我尝试过的其他几张图片都失败了【参考方案2】:除非您意识到图像的主观复杂性,否则您无法确定之前的颜色数量(本例中为 3 个)。
共有三种设置可以使用给定数量的颜色渲染图像。
convert python-logo.png +dither -colors 3 python-logo-reduced-colors.gif
convert python-logo.png +dither -posterize 3 python-logo-reduced-colors.gif
convert python-logo.png -separate -threshold 50% -combine python-logo-reduced-colors.gif
【讨论】:
这并不能帮助我检索颜色的数量!我不知道我的客户要上传什么,所以我不能使用 -colors 3. Powtac,除非你理解我的问题,否则不要回复或评论,第三次你在没有阅读我的问题的情况下发布,给它起来。以上是关于PHP 或 Imagemagick :图像中主要颜色的数量的主要内容,如果未能解决你的问题,请参考以下文章
PHP:显示 ImageMagick 图像而不保存到像 GD 这样的服务器
用php和imagemagick来处理图片文件的上传和缩放处理