匹配的拼图块

Axa*_*dax 7 pattern-recognition image

我没有什么有用的东西,正在玩这样的拼图游戏:

alt text http://manual.gimp.org/nl/images/filters/examples/render-taj-jigsaw.jpg

我想知道是否有可能制作一个帮助我把它组合在一起的程序.

想象一下,我有一个小拼图,比如4x3件,但是小标签和空白是不均匀的 - 不同的部件有不同高度,不同形状,不同尺寸的这些标签.我要做的是拍摄所有这些片段,让程序分析它们并将它们的属性存储在某个地方.然后,当我拿起一块时,我可以让程序告诉我哪些碎片应该是它的"邻居" - 或者如果我必须填写一个空白,它会告诉我想要的拼图是怎么回事看.

不幸的是,我从来没有与图像处理和模式识别任何东西,所以我想请你为一些指针- 我该如何识别一块拼图(基本上是正方形,标签和孔)中的图片

然后我可能需要旋转它,使其处于正确位置,按比例缩放,然后测量每侧的标签/空白,以及每侧的斜率(如果存在).

我知道扫描/拍摄1000块拼图并使用它会花费太多时间,这只是一个宠物项目,我会学到新东西.

rwo*_*ong 4

数据采集

(这称为色度键、蓝屏或背景颜色方法)

  1. 找到一个光线充足的房间,整个房间的光线变化最少。
  2. 找到整个拼图/图片中很少使用的颜色(色调)。
  3. 准备一张颜色完全相同的彩纸。
  4. 将尽可能多的拼图块放在彩纸上。
    • 您可以将谜题分批分类,并在以后将其用作计算机提示。
    • 确保各部分不重叠或相互接触。
    • 暂时不用担心方向。
  5. 拍照并下载到电脑。
    • 可能需要颜色校准,因为色度键背景可能会扰乱数码相机的内置颜色平衡。

采集数据处理

  1. 获取一些计算机视觉软件
    • OpenCV、MATLAB、C++、Java、Python 图像库等
  2. 对图像上的色度键颜色执行连通分量。
    • 询问连接组件(即拼图)的孔的轮廓。
  3. 修复检测到的列表中的错误。
  4. 选择索引词汇(参见 Ira Baxter 的帖子)并衡量各个部分。
    • 如果碎片是矩形的,首先找到角。
    • 如果这些碎片是稍微偏离的四边形,则边长(从角到角测量)也是一个有价值的签名。
    • 在 SO 或Google此处搜索“形状上下文” 。
    • 最后获取该棋子的颜色直方图,方便后续按颜色查询棋子。
  5. 为了使它们可搜索,请将它们放入数据库中,以便您可以使用索引词汇的任意组合来查询片段。