【问题标题】:Javascript image main cluster colorJavascript图像主簇颜色
【发布时间】:2011-10-12 18:19:48
【问题描述】:

我正在寻找一种通过 javascript 从图像中找到主要颜色的方法。可能通过一些算法来聚类一些区域。

问题是因为如果我使用像素,将计算更多使用的像素。前任。如果我有棕色和棕色旁边的非常颜色,那么一部分是白色的。主色可以是白色。并且不希望颜色平均,因为不能代表图像的真实颜色。

关于插件、要实现的代码、网站的任何建议。在此先感谢

更新

类似这样的:

http://www.cssdrive.com/imagepalette/

这里有一些解释,不知道我是否可以重用js代码。

http://harthur.wordpress.com/2009/12/18/getting-the-color-scheme-of-a-website-using-canvas-and-hierarchical-clustering/

【问题讨论】:

    标签: javascript image plugins image-processing colors


    【解决方案1】:

    这很难但可行。

    第一步是从图像中获取像素数据 - 为此,您需要draw the image onto a canvas element and get the pixel data。请注意,Same Origin Policy 适用于图像,因此图像必须与脚本位于同一服务器上,否则您需要使用代理。

    现在您可以对像素数据应用算法以找到“主要”颜色。最简单的选择是平均值,但听起来您不希望这样。那里有很多聚类算法。可能您想要的是执行color quantization 以将调色板中的颜色数量减少到一些少量,然后采用代表图像中最多像素的颜色。

    median cut algorithm 在这里是一个不错的、相对简单的选项,尽管它仍然需要大量的编码。我从事了一个小型业余项目来用 Javascript 实现这个算法——你可以see my code here。开箱即用它对你不起作用,但我可能已经为你完成了大部分艰苦的工作。

    【讨论】:

    • 谢谢,我会检查是否可以使用你的插件。已经使用画布从图像中获取数据。但是需要一个插件来对数据(像素)进行聚类,这样我就可以使用你的代码了。
    • pv 未定义出现此
    • 是的,抱歉 - 这目前依赖于 protovis 库 (mbostock.github.com/protovis)。这只是几个小功能 - 我会将它们移到要点中。
    • 将依赖项添加到要点中。请注意,此代码还假定支持 JavaScript 1.6 数组函数(.forEach() 等),因此如果不添加对这些函数的支持,它将无法在旧版本的 IE 中运行。
    • 最终取得了不错的结果,接近预期。只需尝试合并您的库并使用这些库:harthur.github.com/clusterfckgithub.com/harthur/rainbow/tree/master/chrome/content/analyzer。对于未来,这篇文章也会有所帮助harthur.wordpress.com/2009/12/18/… 很快将尝试将代码放在某个地方,用最少的东西,以便人们可以测试和改进代码。 :) 感谢您的帮助
    【解决方案2】:

    你可以试试PnnQuant.js
    演示网站https://mcychan.github.io/PnnQuant.js/demo/

    CIEDE2000通过选择质量的单选按钮来调整色差公式:高

    除此之外,Web Workers 用于创建后台线程来调用长时间运行的脚本并处理图像量化等计算密集型任务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 2016-07-06
      相关资源
      最近更新 更多