【问题标题】:Joining the puzzle out of raw images从原始图像中加入拼图
【发布时间】:2012-03-27 21:48:04
【问题描述】:

我有 52x52 像素的“2000 RAW 图像”,对应于代表 4000x1250 像素图像的拼图碎片。图像文件名也是生成的一堆数字,似乎与暴力破解有关?

正如我所提到的,我需要将图像连接在一起才能完成拼图。我不知道从哪里开始,有什么帮助吗?

图像是 RGB 24 位。

【问题讨论】:

标签: algorithm image puzzle brute-force


【解决方案1】:

听起来是个有趣的项目。以下是我将如何解决它:

  1. 尝试为每个图像的边缘创建某种轮廓。例如,它可以基于边缘像素的 RGB 值。

  2. 创建从这样的配置文件到包含左/下/右/上边缘与配置文件匹配的图像的四个集合的映射。

    ...
    xyz -> { { images whose left   edge has profile xyz },
             { images whose bottom edge has profile xyz },
             { images whose right  edge has profile xyz },
             { images whose top    edge has profile xyz } }
    ...
    
  3. 现在对于每个图像,计算其 4 个边缘轮廓。尝试将其与相应集中的每个图像配对。如果左边是xyz,试着把它放在右边是xyz的每张图片旁边。

【讨论】:

  • 在第三点,您基本上已经创建了一个相似度图,问题转化为仅找到一个stable matching
  • 这比我想象的要难。我以前从未处理过图像,看来我会花一些时间阅读。
  • @aioobe;看来,我无法解决,即使您的解决方案是正确的。你能用更多细节更新你的帖子吗?会很有帮助的。
  • 你能上传一个包含图片的 zip 文件吗?
  • @aioobe 我回家后会上传图片。
【解决方案2】:

我会亲自比较棋子的边框颜色并统计匹配下一块拼图。

  1. 编写一个只返回拼图的第一个像素行或列的函数。
  2. 编写一个函数,该函数将根据 3 个最近的邻居返回 2 个边界之间匹配像素(rgb 颜色值)的数量。
  3. 循环查找每个拼图位置并比较每个可能的下一个拼图。保留最接近的相同颜色像素的拼图。

我希望您可以获取图像的 1 像素边框并比较 rgb 值。

【讨论】:

    猜你喜欢
    • 2022-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2014-03-30
    相关资源
    最近更新 更多