解决图片混乱!

时间:2009-08-28 02:08:01

标签: algorithm image

如果你想解决图片混乱,你会使用什么算法的计算机?

你总是可以在算法的效率方面争论,但在这里我真的在寻找要遵循的方法。

由于

4 个答案:

答案 0 :(得分:6)

您需要做的是为拼图游戏的每个面定义一个索引词汇表,这样右侧边缘的索引可以告诉您相应的左侧边缘的索引是什么(例如,一个简单的词汇:“凸”和“凹”,在一个面上有“凸”,暗示在匹配的相对面上“凹”),然后根据索引词汇对每个片段进行分类。词汇越精细,面部匹配越多,你的算法就会越快,但你实现它。 (例如,你可能有“平边,直边倾斜 - 左边,直边倾斜 - 右边,凹面,凸面,旋钮,旋钮孔......)。我们假设索引方案抽象了边缘的实际形状,并且有一个谓词“精确拟合(piece1,edge1,piece2,edge2)”,只有在边缘完全匹配时才是真的。我们进一步假设最多只有一个完全匹配的一块具有特殊优势。

目标是增长一组区域,例如一组连接的区域,直到不再可能生长区域为止。我们首先使用唯一的区域名称标记所有部分,每个部分1个,并且所有边缘都是无与伦比的。然后我们按任何顺序枚举片段边缘。对于具有边E的每个枚举的片P,使用索引方案来选择可能匹配的片/边对。检查完全适合的谓词;最多一件Q,边缘F,完全匹配。将P和Q的区域组合在一起形成一个大区域。重复。我认为这解决了这个难题。

答案 1 :(得分:0)

解决拼图游戏基本上可以减少到像边缘一样匹配边缘。在一个真正的拼图游戏中,只有一对棋子可以沿着特定的边缘正确地互锁,每个棋子都有角落,这样你就可以知道特定的一侧开始和结束的位置。

因此,只需找到每条边的端点并选择几个控制点。然后迭代所有未绑定边缘的片段,直到找到正确的边缘。当没有未绑定的边缘时,你已经解决了这个难题。

答案 2 :(得分:0)

要详细阐述艾拉·巴克斯特的答案,另一种概念化问题的方法是将拼图作为一个图形来考虑,其中每个部分都是一个节点,每个部分都是另一个部分是边缘。

例如,如果你正在设计一个益智游戏,那么以这种方式存储“答案”将使得“检查这是否适合”代码的速度要快得多,因为它可以简化为某种散列查找。

答案 3 :(得分:0)

.1找到 2x2-gram ,以便所有四条边都适合。然后,评估图像内容彼此匹配的程度。

  P1 <--> P2
  ^       ^
  |       |
  v       v
  P3 <--> P4

.2标记方向(手动或启发式),但仅将它们用作启发式分数(用于排名),而不是用作最终搜索条件。

.3 形状背景