用于文本图像拼接的拍摄方法
技术领域
本发明属于图像处理技术领域,涉及一种拍摄方法,尤其涉及一种用于文本图像拼接的拍摄方法。
背景技术
随着技术的发展,现在的智能手机一般都集成了带有自动对焦的数码相机功能,人们经常用手机上的相机来扫描或者拍摄文本图像,由于手机上的相机一般都是介于三百万至五百万的像素,拍出来的文本图像其清晰度和分辨率都不可能和传统的扫描仪想比。因此为了得到一个高分辨的文档全图,一种常用的解决方案就是使相机离文档比较近,先拍摄该文档的各个局部区域,得到比较清晰的局部文本图像后,再将这些局部图像拼接起来,生成一个文本全图。这样通过拼接得到的文本全图,其分辨率可以达到千万像素以上。
但是这种方案存在的一个缺点就是,有时候用户拍摄的局部文档图像并没有完整的覆盖到文档各个区域,导致最后拼接出来的文档全图会出现空洞或者缺角的现象。如果发现最后拼接出来的全图不完整,再重拍一下所有的局部图像进行再次拼接,那样的话会非常耗费时间。
发明内容
本发明所要解决的技术问题是:提供一种用于文本图像拼接的拍摄方法,可保证拍摄到所有的局部图像能够覆盖整个文档,使最后拼出来的文档图像不会出现有空洞或者有缺角的情况。
为解决上述技术问题,本发明采用如下技术方案:
一种用于文本图像拼接的拍摄方法,所述方法包括:
步骤110,拍摄整个文档,得到的整个文本图像作为文档模板图像;
步骤120,按照拍摄提示,拍摄文档某个区域的一幅局部图像;
步骤130,将拍摄到的局部区域图像跟模板文本图像,进行特征匹配;局部图像跟模板图像进行特征匹配的方法包括:步骤131,确定感兴趣的特征关键点;步骤132,提取关键点周围区域的特征向量描述子;步骤133,通过特征点的欧式距离来匹配各个特征向量描述子;步骤133中,匹配策略采用最近邻比例匹配:对于二幅图像的特征点匹配,要查找与第一幅图像中某个特征点的对应匹配点,则在第二幅图像中找出与该特征点欧式距离最近的二个特征点,如果最近点的距离dnearst除以第二近点的距离dsec ond小于设定阈值,则认为该最近点为匹配点,否则不接收;
步骤140,判断特征匹配是否成功;判断标准:匹配上的特征点对是否达到设定值,如低于设定值,无法计算透视变化矩阵,则判断为失败,转到步骤180,如特征匹配对的点数达到或超过设定值,判断为成功,转到步骤150;
步骤150,通过130步骤得到的匹配特征点,计算将局部图像变化到模板文本图像的透视变化矩阵;通过透视变化矩阵,计算四个顶点所构成的内接矩形,判断内接矩形是否跟提示拍摄的区域相吻合,如是转向步骤160,如不是转向步骤180;
其中,根据匹配上的特征点对计算透视变换矩阵的方法包括:根据二幅图像的匹配上的特征点对,计算二幅文本图像所在平面之间的透视变化矩阵;设定src_points为模板文本图像中所在平面的匹配点坐标,大小为2xN,其中,N表示点的数目;设定dst_points为局部图像所在平面的匹配点坐标,大小为2xN;透视变化矩阵为3×3的矩阵,使得
其中(x
i,y
i,1)为dst_points一个点的坐标,(x′
i,y′
i,1)为src_point一个点的坐标;
输出的3x3的透视变化矩阵,使得反投影错误最小,即下式最小:
步骤160,根据各次拍摄所得到的内接矩形,计算出成功拍摄区域,判断成功拍摄区域是否已经覆盖了整个文档区域;如果没有完全覆盖,转向步骤170;如果完全覆盖,这些局部图像可用来拼接,最后得到一个文档全图将不会出现空洞或者不全的情况,转向步骤180;
步骤170,根据已经拍摄好的成功拍摄区域,计算下一个要拍摄的区域,接着提示用户拍摄下一个区域的图像,要拍摄的区域用第二标记区域来提示,此时转到步骤120;
步骤180,结束。
一种用于文本图像拼接的拍摄方法,所述方法包括:
步骤110,拍摄整个文档,得到的整个文本图像作为文档模板图像;
步骤120,按照拍摄提示,拍摄文档某个区域的一幅局部图像;
步骤130,将拍摄到的局部区域图像跟模板文本图像,进行特征匹配;
步骤140,判断特征匹配是否成功;判断标准:匹配上的特征点对是否达到设定值,如低于设定值,无法计算透视变化矩阵,则判断为失败,转到步骤180,如特征匹配对的点数达到或超过设定值,判断为成功,转到步骤150;
步骤150,通过130步骤得到的匹配特征点,计算将局部图像变化到模板文本图像的透视变化矩阵;通过透视变化矩阵,计算四个顶点所构成的内接矩形,判断内接矩形是否跟提示拍摄的区域相吻合,如是转向步骤160,如不是转向步骤180;
步骤160,根据各次拍摄所得到的内接矩形,计算出成功拍摄区域,判断成功拍摄区域是否已经覆盖了整个文档区域;如果没有完全覆盖,转向步骤170;如果完全覆盖,这些局部图像可用来拼接,最后得到一个文档全图将不会出现空洞或者不全的情况,转向步骤180;
步骤170,根据已经拍摄好的成功拍摄区域,计算下一个要拍摄的区域,接着提示用户拍摄下一个区域的图像,要拍摄的区域用第二标记区域来提示,此时转到步骤120;
步骤180,结束。
作为本发明的一种优选方案,步骤110中,拍摄模板图像的方法包括:
调整相机离文档的距离,当要拍摄的文档恰好充满整个手机屏幕,此时按下拍摄按钮,得到初始的文本图像;然后将该初始文本图像作用于接下来提示用户拍摄的模板图像。
作为本发明的一种优选方案,步骤120中,拍摄局部图像的方法包括:
在拍摄时,屏幕的上出现一个模板图像的缩略图,在该缩略图上,第一标记区域表示已经成功拍摄区域,要拍摄的区域用第二标记区域标识,用户根据第二标记区域,拍摄局部图像。
作为本发明的一种优选方案,步骤130中,局部图像跟模板图像进行特征匹配的方法包括:提取局部图像及模板图像二幅图像的尺度不变特征转换SIFT局部特征,进行特征匹配;
步骤150中,根据二幅图像的匹配上的特征点对,计算局部图像与模板图像所在平面之间的透视变化矩阵。
作为本发明的一种优选方案,步骤160中,计算局部图像所覆盖文档的区域的方法包括:
局部图像的四个顶点为左上点、右上点、左下点、右下点;这四个点通过透视变化矩阵进行变换,得到变换后的位置坐标将和模板图像处于同一坐标系下;
然后计算这四个变换后顶点的有效的内接矩形,内接矩形代表此次拍摄的区域,计算该内接矩形跟第二标记区域所要提示拍摄的区域是否吻合;
判断吻合的标准是:内接矩形是否覆盖了第二标记区域的设定比例,如果超过设定比例,则代表正确拍摄,否则说明用户拍摄的不是所提示的区域;内接矩形区域跟已经拍摄所得到的成功拍摄区域进行合并,将成功拍摄区域扩大。
作为本发明的一种优选方案,步骤170中,提示用户拍摄下个区域的方法包括:
在缩略模板图像中,把缩略图划分为n个均匀区域;
对照缩略模板图,将整个区域划分为均匀的n个小区域,对于每个小区域从上至下,从左至右依次编号为1、2、3、…、n-1、n;第一次提示用户拍摄的局部区域为区域1,并在缩略图的区域1用第二标记闪动,提示用户拍摄该区域;
接着在拍摄后续的局部图像时,在右上角的缩略模板图,先更新上次拍摄好区域,即将成功拍摄区域扩大;
然后再提示用户要拍摄的区域,如果上次拍摄是区域i,i代表编号;下次提示要拍摄的是i+1号区域;如果i为n,则说明成功拍摄了n个区域;检查成功拍摄区域是否覆盖了整个文档;如果已经完全覆盖,说明拍摄的局部图像用于拼接已经足够,如果成功拍摄区域没有完全覆盖,检查漏洞,并提示用户去拍摄该漏洞区域。
一种用于文本图像拼接的拍摄方法,所述方法包括:
步骤S1,拍摄整个文档,得到的整个文本图像作为模板图像;
步骤S2,拍摄文档某个区域的局部图像;
步骤S3,将拍摄到的局部区域图像跟模板文本图像进行特征匹配;
步骤S4,判断特征匹配是否成功;匹配成功后,通过步骤S3得到的匹配特征点,计算将局部图像变化到模板文本图像的透视变化矩阵;通过透视变化矩阵,计算四个顶点所构成的内接矩形;
步骤S5,根据各次拍摄所得到的内接矩形,计算出成功拍摄的覆盖区域,判断所有成功拍摄的区域是否已经覆盖了整个模板图像;如果没有完全覆盖,转向步骤S6;如果完全覆盖,转向步骤S7;
步骤S6,根据已经拍摄好的成功拍摄区域,解析出未拍摄或未成功拍摄的区域;转到步骤S2继续拍摄;
步骤S7,结束。
一种用于文本图像拼接的拍摄方法,所述方法包括:
步骤S1,拍摄整个文档,得到的整个文本图像作为模板图像;
步骤S2,按照拍摄提示,拍摄文档某个区域的局部图像;
步骤S3,将拍摄到的局部区域图像跟模板文本图像进行特征匹配;
步骤S4,判断特征匹配是否成功;匹配成功后,通过步骤S3得到的匹配特征点,计算将局部图像变化到模板文本图像的透视变化矩阵;通过透视变化矩阵,计算四个顶点所构成的内接矩形;
步骤S5,根据各次拍摄所得到的内接矩形,计算出成功拍摄的覆盖区域,判断所有成功拍摄的区域是否已经覆盖了整个模板图像;如果没有完全覆盖,转向步骤S6;如果完全覆盖,转向步骤S7;
步骤S6,根据已经拍摄好的成功拍摄区域,计算下一个要拍摄的区域;接着提示用户拍摄下一个区域的图像,此时转到步骤S2;
步骤S7,结束。
为了实行本发明,需具备如下硬件条件:智能手机或者数码相机,而且该设备中需要有一般的运算和存储装置,包括一定频率的CPU(中央处理器),有一定用来运算的内存和用来存储系统软件,应用软件和各种数据的存储空间等。智能手机上的相机或者数码相机需要有自动对焦的功能。
本发明的有益效果在于:本发明提出的用于文本图像拼接的拍摄方法,保证拍摄到所有的局部图像能够完整的覆盖整个文档区域,使最后拼出来的文档图像不会出现有空洞有缺角的情况;从而一次拼接就能够达到良好的效果。本发明拍摄方法非常适合手机上的文档拼接。
附图说明
图1为本发明用于文本图像拼接的拍摄方法的流程图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
本发明提出了一种针对文本图像拼接的拍摄方法,该方法首先要求用户将相机离文档相对远些,即刚好能拍摄出整幅文档图像即可,将拍摄出整幅文档作为模板图像,接着根据模板图像去提示用户依次拍摄文档的各个部分,此时拍摄局部图像时,相机离得近些,拍出来的文本图像也将更加清楚,每个部分组成一幅局部图像,并且在拍摄过程中能够看到已经拍摄的局部图像所覆盖的文档区域,从而最后保证拍摄到所有的局部图像能够覆盖整个文档,使最后拼出来的文档图像不会出现有空洞或者有缺角的情况。
请参阅图1,本发明用于文本图像拼接的拍摄方法具体包括如下步骤:
【步骤110】使相机离文档较远,恰好能够拍摄整个文档,得到的这个文本图像作为文档模板图像。
拍摄文本图像(模板图像)的方法包括:
调整相机离文档的距离,当要拍摄的文档恰好充满整个手机屏幕,此时按下拍摄按钮,得到初始的文本图像。然后将该初始文本图像作用于接下来提示用户拍摄的模板图像。
【步骤120】按照拍摄提示,拍摄文档某个区域的一幅局部图像。
拍摄局部图像的方法包括:
在拍摄时,屏幕的右上角有一个模板图像的缩略图,在该缩略图上,绿色标记的表示已经拍摄好的区域,要拍摄的区域用红色的框闪动,用户根据红色闪动框的区域,去拍摄局部图像。
【步骤130】将拍摄到的局部区域图像跟模板文本图像,进行特征匹配(SIFT特征匹配)。
局部图像跟模板图像进行特征匹配的方法包括:
提取二幅图像的SIFT局部特征,进行特征匹配。
根据二幅图像的匹配上的特征点对,计算局部图像与模板图像所在平面之间的透视变化矩阵(homography矩阵)。
【步骤140】判断特征匹配是否成功。判断标准:匹配上的特征点对是否达到四个以上,如低于四个,无法计算透视变化矩阵,则判断为失败,转到步骤180,如特征匹配对的点数超过四个,判断为成功,转到步骤150。
【步骤150】通过130步骤得到的匹配特征点,计算将局部图像变化到模板文本图像的透视变化矩阵。通过透视变化矩阵,计算四个顶点所构成的内接矩形,判断内接矩形是否跟提示拍摄的区域相吻合,如是转向步骤160,如不是转向步骤180。
【步骤160】根据各次拍摄所得到的内接矩形,计算出绿色的覆盖区域,判断绿色区域是否已经覆盖了整个文档区域,如果没有,转向步骤170。如果是,这些局部图像可以用来拼接,最后得到一个文档全图将不会出现空洞或者不全的情况,转向步骤180。
计算局部图像所覆盖文档的区域的方法包括:
局部图像的四个顶点,左上点,右上点,左下点,右下点。这四个点通过homography变化矩阵进行变换,得到变换后的位置坐标将和模板图像处于同一坐标系下。然后计算这四个变换后顶点的有效的内接矩形,内接矩形代表此次拍摄的区域,计算该内接矩形跟红色框提示框所要提示拍摄的区域是否吻合,判断吻合的标准是:内接矩形是否覆盖了红色提示框区域的80%,如果超过80%,则代表正确拍摄,否则说明用户拍摄的不是所提示的区域。内接矩形区域用绿色表示,并且跟前面拍摄所得到的绿色区域进行合并,将绿色区域扩大。
【步骤170】根据已经拍摄好的绿色覆盖区域,计算下一个要拍摄的区域,接着提示用户拍摄下一个区域的图像,要拍摄的区域用红色框闪动框来提示,此时转到步骤120。
提示用户拍摄下个区域的方法包括:
在缩略模板图像中,把缩略图划分为n个均匀区域,n值一般取4或者9,在这里按照9个区域的方式进行说明。
对照缩略模板图,将整个区域划分为均匀的9个小区域,对于每个小区域从上至下,从左至右依次编号为1,2,3,4,5,6,7,8,9.第一次提示用户拍摄的局部区域为区域1,并在缩略图的区域1用红色框闪动,提示用户拍摄该区域。接着在拍摄后续的局部图像时,在右上角的缩略模板图,先更新上次拍摄好区域,即将绿色区域扩大。然后再提示用户要拍摄的区域,如果上次拍摄是n区域,n代表编号,这下次提示要拍摄的是n+1号区域,如果n是9,则说明拍摄了9个区域,检查绿色区域是否覆盖了整个文档,如果已经完全覆盖,说明拍摄的局部图像用于拼接已经足够,如果绿色区域没有完全覆盖,检查漏洞,并提示用户去拍摄该漏洞区域。
【步骤180】结束。
实施例二
本实施例揭示一种用于文本图像拼接的拍摄方法,所述方法包括:
步骤110,拍摄整个文档,得到的整个文本图像作为文档模板图像。
步骤120,按照拍摄提示,拍摄文档某个区域的一幅局部图像。
步骤130,将拍摄到的局部区域图像跟模板文本图像,进行特征匹配;局部图像跟模板图像进行特征匹配的方法包括:步骤131,确定感兴趣的特征关键点;步骤132,提取关键点周围区域的特征向量描述子;步骤133,通过特征点的欧式距离来匹配各个特征向量描述子;步骤133中,匹配策略采用最近邻比例匹配:对于二幅图像的特征点匹配,要查找与第一幅图像中某个特征点的对应匹配点,则在第二幅图像中找出与该特征点欧式距离最近的二个特征点,如果最近点的距离dnearst除以第二近点的距离dsec ond小于设定阈值,则认为该最近点为匹配点,否则不接收。
步骤140,判断特征匹配是否成功;判断标准:匹配上的特征点对是否达到设定值,如低于设定值,无法计算透视变化矩阵,则判断为失败,转到步骤180,如特征匹配对的点数达到或超过设定值,判断为成功,转到步骤150。
步骤150,通过130步骤得到的匹配特征点,计算将局部图像变化到模板文本图像的透视变化矩阵;通过透视变化矩阵,计算四个顶点所构成的内接矩形,判断内接矩形是否跟提示拍摄的区域相吻合,如是转向步骤160,如不是转向步骤180。
其中,根据匹配上的特征点对计算透视变换矩阵的方法包括:根据二幅图像的匹配上的特征点对,计算二幅文本图像所在平面之间的透视变化矩阵。
设定src_points为初始文本图像中所在平面的匹配点坐标,大小为2xN,其中,N表示点的数目;设定dst_points为局部图像所在平面的匹配点坐标,大小为2xN;透视变化矩阵为3×3的矩阵,使得
其中(x
i,y
i,1)为dst_points点对应的齐次坐标,(x′
i,y′
i,1)为src_points点对应的齐次坐标。
在计算匹配点的阶段,得到src_points和dst_points是笛卡尔坐标,对于N个点,大小是2×N。而在计算透视变化矩阵H时,采用的是齐次坐标。齐次坐标用N+1个分量来描述N维的笛卡尔坐标。比如,2D齐次坐标是在笛卡尔坐标(x,y)的基础上增加一个新分量1,变成(x,y,1)。例如:笛卡尔坐标中的点(1,2)在齐次坐标中就是(1,2,1)。
输出的3x3的透视变化矩阵,使得反投影错误最小,即下式最小:
步骤160,根据各次拍摄所得到的内接矩形,计算出成功拍摄区域,判断成功拍摄区域是否已经覆盖了整个文档区域;如果没有完全覆盖,转向步骤170;如果完全覆盖,这些局部图像可用来拼接,最后得到一个文档全图将不会出现空洞或者不全的情况,转向步骤180。
步骤170,根据已经拍摄好的成功拍摄区域,计算下一个要拍摄的区域,接着提示用户拍摄下一个区域的图像,要拍摄的区域用第二标记区域来提示,此时转到步骤120。
步骤180,结束。
实施例三
本实施例揭示一种用于文本图像拼接的拍摄方法,所述方法包括:
步骤S1,拍摄整个文档,得到的整个文本图像作为模板图像。
步骤S2,按照拍摄提示,拍摄文档某个区域的局部图像。
步骤S3,将拍摄到的局部区域图像跟模板文本图像进行特征匹配。
步骤S4,判断特征匹配是否成功;匹配成功后,通过步骤S3得到的匹配特征点,计算将局部图像变化到模板文本图像的透视变化矩阵;通过透视变化矩阵,计算四个顶点所构成的内接矩形。
步骤S5,根据各次拍摄所得到的内接矩形,计算出成功拍摄的覆盖区域,判断所有成功拍摄的区域是否已经覆盖了整个模板图像;如果没有完全覆盖,转向步骤S6;如果完全覆盖,转向步骤S7。
步骤S6,根据已经拍摄好的成功拍摄区域,计算下一个要拍摄的区域;接着提示用户拍摄下一个区域的图像,此时转到步骤S2;此外,下一个要拍摄的区域也可以不经过系统计算,由用户自己定义。
步骤S7,结束。
综上所述,本发明提出的用于文本图像拼接的拍摄方法,保证拍摄到所有的局部图像能够完整的覆盖整个文档区域,使最后拼出来的文档图像不会出现有空洞有缺角的情况;从而一次拼接就能够达到良好的效果。本发明拍摄方法非常适合手机上的文档拼接。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。