一、使用背景
在使用截图的时候往往只能截取一个屏幕的内容,当我们需要将多个屏幕翻滚的内容拼接成一张图片的时候就需要用到图片拼接算法了,这里提供一种截图拼接的方式,以实现长截图功能。
二、技术方案
1. 整体技术方案
2. 具体的拼接算法
3. 图片指纹如何提取
图片指纹提取过程中遍历每行数据的每个像素点进行灰值化,小于阀值的置为0,然后将左右边框区域也置为0,最后根据CRC哈希算法压缩一行像素数据储存到容器
4. 图片相同区域匹配
提取完成图片指纹后再进行图片匹配,在匹配前需要先裁剪掉固定的头部和底部区域(存在固定部分的情况)。然后将裁剪后的图片进行区域匹配,匹配的条件需要满足以下条件中的一个:
1. 图片1的下部分与图片2的上部分存在区域重叠。
2. 图片1的上部分与图片2的下部分存在区域重
5. 图片拼接
结尾
上面是一个图片拼接算法的简略介绍,还有一些细节可以继续优化,尤其在指纹提取方面可以忽略一些像素杂质可以让拼接匹配更容易。 在相同区域检测时,目前还存在检测过于严格的问题,在截取一些聊天软件的聊天记录时因为存在画面些许改变可能导致相同区域匹配不成功。