相关疑难解决方法(0)

检查颜色相似性的算法

我正在寻找一种比较两种RGB颜色并生成其相似性值的算法(其中相似性意味着"与人类平均感知相似").

有任何想法吗?

编辑:

由于我不能回答,我决定将我的"解决方案"作为问题的编辑.

我决定在我的应用程序中使用(非常)小的真彩色子集,以便我可以自己处理颜色的比较.我使用大约30种颜色,并使用它们之间的硬编码距离.

由于它是一个iPhone应用程序,我使用Objective-C,实现或多或少是一个表示下表的矩阵,它显示了颜色之间的距离.

在此输入图像描述

algorithm rgb comparison colors

77
推荐指数
5
解决办法
3万
查看次数

在图像中找到相似颜色的区域

我一直在研究这个问题已经有一段时间没什么可喜的结果了.我试图将图像分割成相似颜色的连接区域.(基本上将所有像素的列表分成多个组(每个组包含属于它的像素的坐标并共享相似的颜色).

例如:http: //unsplash.com/photos/SoC1ex6sI4w/

在这张图片中,顶部的乌云可能会落入一组.山上的一些灰色岩石在另一个,另一些是橙色的草.雪会是另一个 - 背包的红色 - 等等.

我正在尝试设计一种既准确又高效的算法(它需要在中端笔记本电脑级硬件上运行几毫秒)


以下是我的尝试:

使用基于连通分量的算法从左上角扫描每个像素,从左到右扫描每行像素(并将当前像素与顶部像素和左像素进行比较).使用CIEDE2000色差公式,如果顶部或左侧的像素在一定范围内,那么它将被视为"相似"并且是该组的一部分.

这种方法有效 - 但问题在于它依赖于具有锐边的颜色区域 - 如果任何颜色组通过软渐变连接,它将沿着该渐变向下移动并继续"连接"像素,因为各个像素之间的差异是比较小到足以被认为是"相似的".

为了解决这个问题,我选择将每个访问过的像素的颜色设置为大多数"相似"相邻像素(顶部或左侧)的颜色.如果没有相似的像素,则保留其原始颜色.这在某种程度上解决了更加模糊的边界或柔化边缘的问题,因为随着算法的进展,新组的第一种颜色将被"携带",并且最终颜色与当前比较颜色之间的差异将超过"相似性"威胁和不再是该群体的一部分.

希望这是有道理的.问题是这些选项都没有真正起作用.在上面的图像上返回的不是干净的组,而是嘈杂的碎片组,这不是我想要的.

我不是专门寻找代码 - 而是关于如何构建算法以成功解决这个问题的更多想法.有没有人有这个想法?

谢谢!

javascript image node.js

13
推荐指数
1
解决办法
2176
查看次数

如何确定两种HEX颜色之间的差异?

我需要能够提取两种十六进制颜色之间的差异,将其自身表示为十六进制颜色,以便稍后使用LESS将它们组合起来.

理想情况下,这将适用于JavaScript

javascript hex colors less

1
推荐指数
1
解决办法
4128
查看次数

从 javascript/nodejs 中的表中查找最接近的 RGB 值

互联网界的人们!我正在制作一个程序,需要使用 Jimp 尝试找到大量像素的最接近的 RGB 匹配。

假设您有一种略带紫色的颜色,我想将其更改为表格中的紫色,如下所示:

    var colors = [
        [0,0,255,0],
        [1,255,165,0],
        [2,0,0,255],
        [3,255,192,203],
        [4,165,42,42],
        [5,255,255,255],
        [6,0,0,0],
        [7,230,230,350],
        [8,255,255,0],
        [9,0,0,0],
    ]
Run Code Online (Sandbox Code Playgroud)

(其中一个数组中的第一个数字可以忽略,其余的只是 R、G 和 B)

因此,如果我有像 (255,7,1) 这样的红色,我想将其与表中的红色相匹配,即 (255,0,0)

我已经尝试过一些东西,但它非常愚蠢并且不起作用,所以我就不告诉你细节了。

有谁能够帮助我?谢谢!

javascript node.js

1
推荐指数
1
解决办法
627
查看次数

标签 统计

javascript ×3

colors ×2

node.js ×2

algorithm ×1

comparison ×1

hex ×1

image ×1

less ×1

rgb ×1