logo科技微讯

关于图片的去重拼接

作者:科技微讯
日期:2022-09-25
📝 笔记

没找到有效的编程解决方法,不过找到了使用一款叫 mathematica 的软件实现的方法,解决这个问题的关键其实是找出重叠区域。

链接中探讨的方法主要有两种:

  • Longest Common Subsequence Positions:这个概念很容易理解,但是如果对比整张图片运算量很大,似乎不适合小程序;
  • 第一张图片和第二张图片各取出一部分,然后计算各像素各通道的差值,最后拿到最大的 100 个差值并求和,在重叠区这个求和值会突然变小:distance[align_] := Total@TakeLargest[Abs[Flatten[id1[[-align ;;]] - id2[[;; align]]]], 100]

我写的微信小程序“拼长图”也支持去重拼接手机截图,但实现方法和上面两种都不一样,我用 pixelMatch 逐行比较两张图片在同一位置的两个像素,如果某一行相同或不同,则可以视为进入重叠区域或离开重叠区域,如果连续多行都一样,则找到了重叠临界线。

链接探讨的两种方法运算量都较高,但准确性应该比我的好。

2022/12/09 补充:odiff 是类似 pixelMatch 的工具,但速度比 pixelMatch 快很多。

donation赞赏
thumbsup0
thumbsdown0
暂无评论