发明名称 拍摄多幅文本图像并拼接的方法
摘要 本发明揭示了一种拍摄多幅文本图像并拼接的方法,所述方法包括如下步骤:拍摄整个文本,得到的整个文本全图作为模板图像;将整个文本全图划分为L个区域;计算要拍摄的区域,并逐次拍摄;如果上一次拍摄的是第k个区域,则此次要拍摄的是第k+1个区域;将模板图像中的对应区域的图像设置为半透明,并充满屏幕的填充区域;基于半透明模板图像的拍摄提示,用户拍摄对应区域文本的局部图像;判断文档的所有局部图像是否拍摄完,如果判断还有要拍摄的局部图像,则继续拍摄。本发明能够保证拍摄到所有的局部图像能够覆盖了整个文档区域,使用这些局部图像拼接出来的文档全图不会出现有空洞或者有缺角的情况,从而一次拼接就能够达到良好的效果。
申请公布号 CN101976449B 申请公布日期 2012.08.08
申请号 CN201010558868.5 申请日期 2010.11.25
申请人 上海合合信息科技发展有限公司 发明人 龙腾;黄灿;镇立新
分类号 G06T11/60(2006.01)I 主分类号 G06T11/60(2006.01)I
代理机构 上海光华专利事务所 31219 代理人 王松
主权项 1.一种拍摄多幅文本图像并拼接的方法,其特征在于,所述方法包括如下步骤:步骤110,使相机离文本较远,恰好能够拍摄整个文本,得到的整个文本全图;步骤120,用户将整个文本全图划分为N*M个均匀区域;步骤130,以上述划分区域为基准,计算要拍摄的区域,如果上次拍摄的是第k个区域,则此次要拍摄的是第k+1个区域,将该区域的图像作为半透明模板图充满屏幕的填充区域,其中填充区域每条边跟屏幕边缘的距离为i个像素;并提示用户拍摄;提示用户拍摄下个区域的方法包括:以上述划分的区域为基准,把要拍摄的某区域剪切出来作为模板图像,然后在手机的拍摄屏幕中设置填充区域,填充区域的每条边缘跟显示屏边缘的距离为i个像素点;根据填充区域,将模板图像缩小到恰好能够充满填充区域,模板图像的像素透明度设置为半透明,使得在拍摄局部图像时,既可预览到要拍摄的局部图像,还可将要拍摄的局部图像跟模板图像进行对比;步骤140,基于半透明文档模板图的拍摄提示,用户拍摄所在区域文档的局部图像;拍摄局部图像的方法包括:调整相机的距离,当预览到要拍摄的局部图像跟模板图像几乎吻合时,此时按下拍摄按钮,得到局部图像;步骤150,判断文档的所有局部图像上否拍摄完,如判断结果是已经拍摄完毕,转向步骤160,如果判断还有要拍摄的局部图像,则转向步骤130;步骤160,将所有局部图像拼接为一幅完整全图;该步骤包括:将局部图像与模板图像进行特征匹配,接着基于匹配上的特征点对,计算局部图像与文本全图的透视变化矩阵,然后局部图像通过透视变化矩阵变化到文本全图的所在平面,经过变化处理后的所有局部图像将处于同一个平面,而后进行拼接;具体包括:步骤161,将一幅还有进行处理的局部图像与模板图像进行特征匹配,得到特征匹配点对;局部图像跟模板图像进行特征匹配的方法包括:步骤1611,确定感兴趣的特征关键点;步骤1612,提取关键点周围区域的特征向量描述子;步骤1613,通过特征点的欧式距离来匹配各特征向量描述子;步骤1613中,匹配策略采用最近邻比例匹配:对于二幅图像的特征点匹配,要查找与第一幅图像中某个特征点的对应匹配点,则在第二幅图像中找出与该特征点欧式距离最近的二个特征点,如果最近点的距离d<sub>nearst</sub>除以第二近点的距离d<sub>second</sub>小于设定阈值,则认为该最近点为匹配点,否则不接收;步骤162,判断特征匹配是否成功;判断标准:匹配上的特征点对是否达到设定值;若低于设定值,无法计算图像之间的透视变化矩阵,则判断为失败,转到步骤130重新拍摄对应图像;若特征匹配对的点数达到或超过设定值,判断为成功,转到步骤163;步骤163,通过匹配的特征,计算对应局部图像与模板图像之间的透视变化矩阵,然后将局部图像按照透视变化矩阵,得到该局部图像变换后的图片;其中,根据匹配上的特征点对计算透视变化矩阵的方法包括:根据二幅图像的匹配上的特征点对,计算二幅文本图像所在平面之间的透视变化矩阵;设定src_points为模板文本图像中所在平面的匹配点坐标,大小为2xN,其中,N表示点的数目;设定dst_points为局部图像所在平面的匹配点坐标,大小为2xN;透视变化矩阵为3x 3的矩阵,使得<img file="FDA0000156970210000031.GIF" wi="477" he="242" />其中(x<sub>i</sub>,y<sub>i</sub>,1)为dst_points一个点的坐标,(x′<sub>i</sub>,y′<sub>i</sub>,1)为src_point一个点的坐标,H为透视变化矩阵,Si为比例因子;输出的3x3的透视变化矩阵,使得反投影错误最小,即下式最小:<img file="FDA0000156970210000032.GIF" wi="1632" he="161" />将局部图像通过变换矩阵得到变换后的局部图像的方法包括:修改透视变化矩阵<maths num="0001"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>h</mi><mn>11</mn></msub><mo>,</mo><msub><mi>h</mi><mn>12</mn></msub><mo>,</mo><msub><mi>h</mi><mn>13</mn></msub></mtd></mtr><mtr><mtd><msub><mi>h</mi><mn>21</mn></msub><mo>,</mo><msub><mi>h</mi><mn>22</mn></msub><mo>,</mo><msub><mi>h</mi><mn>23</mn></msub></mtd></mtr><mtr><mtd><msub><mi>h</mi><mn>31</mn></msub><mo>,</mo><msub><mi>h</mi><mn>32</mn></msub><mo>,</mo><msub><mi>h</mi><mn>33</mn></msub></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>第三行(h<sub>31</sub>,h<sub>32</sub>,h<sub>33</sub>)是控制放大缩小的系数,为此将(h<sub>31</sub>,h<sub>32</sub>,h<sub>33</sub>)变化成(h<sub>31</sub>/scale,h<sub>32</sub>/scale,h<sub>33</sub>/scale),scale为局部图像变化后相对于模板图像的放大系数;通过透视变化矩阵变换后得到的局部图像,分辨率是原模板图像的scale倍;此时按照修改后的透视变化矩阵,将局部图像都变换到同一坐标系下,而后进行下步的拼接处理;步骤164,判断:是否所有局部图像都已处理完;如果答案为是,则转到步骤165,否则转到步骤161,处理下一幅局部图像;步骤165,将所有变化后的文本图像,根据其有效区域将其拼接起来,得到拼接全图;将所有变换后的局部图像进行拼接的方法包括:将需要拼接的局部图像变化到同一坐标系之后,进行图像的拼接;步骤166,对拼接得到的全图进行后处理;拼接全图的后处理步骤包括:如果所有局部图像拼接出来的全图,出现漏洞或者缺角时,此时将模板图像放大scale倍,然后直接用模板图像将所述局部图像拼接出来的全图中出现漏洞或者缺角的区域的像素进行填充,通过上述后处理,保证得到完整的图像。
地址 200433 上海市杨浦区复旦高新科技园国定路335号一号楼11011A室