小编Gar*_* Gu的帖子

如何在二维中对颜色进行排序?

我目前正致力于一个爱好项目,以自动解决流行的手机游戏I Love Hue中的拼图.这个游戏可以在这里找到.

基本上,游戏的整个前提是你会得到一堆彩色的矩形块,这些块以网格形式组织起来.您可以交换大多数块,除了一些用黑点标记的固定块.游戏的目的是交换块周围,以获得二维色谱.对颜色进行排序,使得每个块的颜色大约是其周围颜色的平均值.(对不起,我不知道任何颜色理论,但可能还有一个关于我正在寻找的内容.)这是一个典型的谜题:

IMG

我已经能够通过adb截取屏幕截图,从块中提取RGB矩阵并标记哪些块是"固定的".我遇到了这个问题的实际算法部分的问题.

这是我到目前为止所做的:

  1. 将RGB转换为HSV并按一维列表中的色调对颜色进行排序.这给了我一个谱,但我不知道如何将这个结果转换成二维.
  2. 将颜色留在RGB中并尝试使用单一颜色.我可以在这里做一些多变量微积分,但难点在于某些颜色共享一个或多个RGB值.有必要考虑所有三种颜色.
  3. 使用欧氏距离找到每对颜色之间的距离.据我所知,最终目标是使这个距离在相邻颜色中最小,但二维网格使这更难.
  4. 使用欧几里德距离,我通过查看相邻块的颜色的欧几里德距离,开发了一个关于某个网格理想程度的度量.但是,我找不到一种有效的算法,可以找出达到理想状态所需的交换.

arrays sorting algorithm colors calculus

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

标签 统计

algorithm ×1

arrays ×1

calculus ×1

colors ×1

sorting ×1