Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有办法从指定的网站上找到某种颜色的图像?_Php_Image Processing - Fatal编程技术网

Php 有没有办法从指定的网站上找到某种颜色的图像?

Php 有没有办法从指定的网站上找到某种颜色的图像?,php,image-processing,Php,Image Processing,首先,我不是说谷歌图片搜索 我想让用户能够选择一个十六进制颜色值,然后有一个搜索程序返回(从指定的网站/目录在线)图像的主导颜色是他们指定的颜色(或接近它) 有没有一种技术可以做到这一点?我更喜欢PHP/MySQL,但如果它更简单的话,我愿意使用其他语言 编辑 根据几条建议,我终于找到了这样一个方法:从图像中提取最常见的颜色 下一步是计算从提取的颜色到正在搜索的颜色的距离。我在实现它时没有任何问题,除非我不清楚计算颜色距离的最佳方法 我已经在这个网站和谷歌上搜索了一个具体的答案,但是没有找到答

首先,我不是说谷歌图片搜索

我想让用户能够选择一个十六进制颜色值,然后有一个搜索程序返回(从指定的网站/目录在线)图像的主导颜色是他们指定的颜色(或接近它)

有没有一种技术可以做到这一点?我更喜欢PHP/MySQL,但如果它更简单的话,我愿意使用其他语言


编辑

根据几条建议,我终于找到了这样一个方法:从图像中提取最常见的颜色

下一步是计算从提取的颜色到正在搜索的颜色的距离。我在实现它时没有任何问题,除非我不清楚计算颜色距离的最佳方法

我已经在这个网站和谷歌上搜索了一个具体的答案,但是没有找到答案。上面的工具将颜色提取为十六进制颜色代码。我目前正在将其转换为RGB并使用它们

我应该尝试将RGB转换为Y'UV吗?我尝试使用以下方法:

sqrt((r-r1)*.299)^2+((g-g1)*.587)^2+((b-b1)*.114)^2)

(根据这里的答案:)

这不太准确我应该用什么来交换颜色距离公式,以便计算准确的颜色距离(到人眼)?

很有趣。 第一个问题是:“图像的主要颜色是什么?”也许是大多数像素都有的颜色。你如何处理相同颜色的类似色调?你会把相似的颜色聚在一起吗

我会这样做:
抓取搜索路径中的所有图像。对每种颜色进行聚类,最大的聚类是主色。您必须对集群大小和集群数量进行一些调整。如果该颜色在您搜索的颜色的色调、饱和度和亮度的特定范围内,则该颜色是匹配的。

首先,我想知道您如何在网站/目录上搜索特定的图像颜色,除非您有一个大的网站列表。如果它与你的问题无关,那就忽略它

回到你的问题,我个人认为这也是一个有趣的问题。因为它需要很多研究,我只想指出一些想法供大家参考

您需要做的是获取用户指定的十六进制颜色,并将其转换为RGB颜色,因为我知道PHP中的大多数图像函数仅适用于RGB。现在,如果你有一个可以搜索的目录列表,那么只需在它们上面爬行,并使用一些基本功能来获取所需网页的内容(例如,或)。一旦你有了一个特定页面的内容,你将需要使用从该页面获取图像的URL(你可以自己计算出来,使用:和)。现在假设您持有一个图像URL列表,现在您需要获取它们的颜色,并尝试将它们与用户指定的颜色匹配(记住将所有内容转换为RGB)

在PHP中,我们有一个非常适合处理图像的工具。如果您的服务器支持GD2,那么您可以看看。此函数“返回图像调色板中“最接近”指定RGB值的颜色索引”。请注意,该函数只返回最接近的匹配(不完全匹配),因此您必须进行一些比较以选择正确的图像(我相信这很容易,因为您现在可以使用RGB颜色和非常方便的值,例如使用一些减法和调整方法)

此外,不仅是图像,当你有一个特定的页面内容时,你可以尝试搜索该页面的配色方案(通过获取其“背景色”值),还有很多细节可以获取和处理:)当然,图像的颜色与页面的样式方案颜色有某种关系,从逻辑上更广泛地思考

如果我说的不清楚,请毫不犹豫地评论我的回答:)


快乐编码。

如果你对PHP开放更多的语言,你可以考虑删除标签,很多人忽略(没有看到)PHP标记的问题。你能更具体些吗?到目前为止你试过什么?你的问题到底在哪里?获取站点/目录上所有图像的列表?加载那些图像?或者你需要帮助找到主颜色并将其与参考颜色进行比较吗?谢谢wesley,我已经更新了问题,以表明我更喜欢PHP,因此使用tag.bjoernz,我可以抓取我需要的站点/目录,获取图像URL和所有其他我需要的信息,但我需要帮助找到图像的主颜色。是否需要下载图像的临时副本以执行分析?我认为您需要下载图片,因为您需要访问像素以确定主色。感谢您的回复。听起来是一个处理图像的好算法。您知道有没有库/现有代码块/教程可以帮助我将其写入工作函数?如果存在可以加快进程的东西,我希望避免重新发明轮子。嗯,谷歌用于聚类算法或细分。可能是密度贴图。下面的工具似乎可以做到这一点:现在,你知道获得颜色距离的最佳方法吗?在主要像素计数过程中,可能需要排除背景颜色,以获得“人类感知”的结果。