一种文本图像的拼接方法及系统
技术领域
本发明属于图像处理技术领域,涉及一种图像的拼接方法,尤其涉及一种文本图像的拼接方法;同时,本发明还涉及一种文本图像的拼接系统。
背景技术
随着越来越多的手机集成了相机拍照功能,基于计算机视觉技术的应用软件在手机上逐渐丰富起来,一种典型应用就是利用手机上的相机来扫描或者拍摄文本图像,实现传统扫描仪的功能。由于手机能移动携带而且用手机上的相机来扫描,使用起来也非常方便,因此手机上的扫描仪是一种非常有前景的应用。
而目前的手机上的扫描仪功能,都是先用相机拍摄文本图片后,再加上一些图像预处理,就得到最终的扫描结果。这种手机扫描仪软件都存在一个比较明显的缺点就是:当所拍摄的文本(文档)比较大时,由于相机相对离的较远,此时得到的图像中文字分辨率比较低,图片中的文字都不是很清楚。
为了提高文本图像的分辨率,使所有的文字都清晰可辨,有着跟传统扫描仪一样的高质量扫描效果,一种有效的解决方案就是先使相机离文档很近,拍摄出文档的各个局部图片,然后再将所有的这些局部文档图片拼接起来,最后得到一个完整的高分辨全图。采用局部图像来拼接大图一个优点就是,相机离文档近了,对焦更准,受到噪声干扰的影响也将随之降低,另外多幅局部图片拼接出来的扫描结果,将有更高的分辨率,像素可以达到千万。以Iphone 3GS手机为例,该手机所带的相机像素为320万,如果采用五六幅320万像素的局部文本图像拼接成一个大图,最后就能得到一幅高达一千多万像素的文本图像。
将局部文本图像拼接成一个完整的大图,该方法跟全景拼图很类似。如一些文献公开了专门介绍图像拼接的技术:R Szeliski,“Image alignment andstitching:A tutorial”,Foundations and Trends in Computer Graphics andVision,2006.
现有技术已经存在一些将多张图片拼接成大图的解决方案,如中国专利CN200810237427.8公开了一种无控制点的图像拼接方法包括以下步骤:(1)获取图像序列;(2)提取图像序列中每幅图像的特征点集;(3)搜索相邻两幅图像之间的特征点的同名点对;(4)利用RANSAC容错算法计算相邻图像之间的Homograph变换关系;(5)利用连乘公式和融合技术得到拼接结果。专利CN200710121181.3公开了一种基于特征匹配的大幅面文化遗产图像的拼接方法,涉及图像匹配、图像拼接领域。具有以下处理步骤:1)针对文化遗产图像的特点,采用角点检测的方法提取图像中的角点作为图像的特征用于图像间的匹配;2)计算相邻图像匹配点间所连直线斜率,利用斜率相同或相近的特点,使用聚类的方法预筛选图像间的相关点;3)使用最佳路径的方法生成一条像素差值较小的拼接路径,以避开像素差异较大区域,达到消鬼影的目的;4)使用HSI颜色空间中的亮度分量,按照拼接路径运用权重函数公式对亮度进行融合。
但是对于一般的全景拼图软件,都是先拍摄好所有的局部图像,然后用户将所有这些图片传到软件中进行处理,最后通过算法处理拼接得到一幅全景图。这种方法的一个缺点就是:“它需要每幅局部图像之间要有重叠区域,如图像重叠区域过小,或者重叠区域没有纹理信息。那么各个局部图像之间的拼接将会失败,这也是现在全景拼图软件常存在的问题。”为了让各个局部图像相互之间有重叠区域,那么用户在拍摄的时候就不能随意乱拍文档了,必须依次拍摄,而且保证各个拍摄的局部图像有重叠。这种有很多限制要求的拍摄方式对于手机用户来说及其不方便。
另外一个缺点:对于多幅平面文档图像进行拼接时,如拼接第一幅和第二幅,需要确定一个变换的参考平面,假如用第一幅文本图像所在的平面作为参考平面。要将第二幅文本图像通过透视变换矩阵变换到到第一幅图像所在的参考平面后,才能和第一幅图像进行拼接得到拼接后的图像。如果要将第三幅再进行拼接时,此时以第一第二幅所拼接出来的图像所在的平面作为参考平面,将第三幅图片变换过去来做拼接,但此时很有可能是第三幅图像与第二幅图像之间才有重叠区域,而变换矩阵是根据这个重叠区域得到的特征匹配对计算出来的。而因为从第二幅变换到第一幅有误差,第三幅变换到第二幅也有误差,最后计算第三幅到第一幅的变换时,此时导致参考平面的累计误差比较大,使最后得到的文档全图,看起来是扭曲弯折的。
为了解决拍摄的局部图像没有重叠区域或者因为重叠区域特征不明显,导致图片无法拼接起来的问题,另外还有参考平面不统一,造成累计误差的情况,本申请人提出了一种基于模板图像来进行特征匹配的文本全图拼接方法。
发明内容
本发明所要解决的技术问题是:提供一种文本图像的拼接方法,可将多幅局部图像拼接起来得到一幅清楚的全图。
此外,本发明还提供一种文本图像的拼接系统,可将多幅局部图像拼接起来得到一幅清楚的全图。
为解决上述技术问题,本发明采用如下技术方案:
一种文本图像的拼接方法,所述方法包括:
S1,获取模板图像;
S2,获取所有的文本局部图像;
S3,将一幅还没有进行处理的局部图像与模板图像进行特征匹配,得到特征匹配点对;
S4,匹配成功后,通过匹配的特征,计算对应局部图像与模板图像之间的透视变化矩阵;
S5,然后将局部图像按照变化矩阵,得到该局部图像变换后的图像;
S6,将所有变化后的文本图像,根据其有效区域将其拼接起来,得到拼接全图。
作为本发明的一种优选方案,步骤S1中,获取模板文本图像的方法包括:调整相机离文档的距离,当要拍摄的文档恰好充满整个手机屏幕,此时按下拍摄按钮,得到初始的文本图像;然后将初始文本图像作为模板图像,用于接下来的特征匹配;
步骤S2中,获取局部文本图像的拍摄方法包括:调整相机的距离,使相机离文档更近些,当所要拍摄的文档局部区域占整个文档面积的设定值,按下拍摄按钮,此时由于相机距离文档较近,所获得局部图像中的文字将更加清楚;然后移动相机,直到拍摄到的局部图像覆盖了整个文档区域。
作为本发明的一种优选方案,步骤S3中,局部图像跟模板图像进行特征匹配的方法包括:
S31,确定感兴趣的特征关键点;S32,提取关键点周围区域的特征向量描述子;S33,通过特征点的欧式距离来匹配各个特征向量描述子;
步骤S33中,匹配策略采用最近邻比例匹配:对于二幅图像的特征点匹配,要查找与第一幅图像中某个特征点的对应匹配点,则在第二幅图像中找出与该特征点欧式距离最近的二个特征点,如果最近点的距离dnearst除以第二近点的距离dsec ond小于设定阈值,则认为该最近点为匹配点,否则不接收。
作为本发明的一种优选方案,步骤S4中,根据匹配上的特征点对计算透视变换矩阵的方法包括:
根据局部图像与模板图像二幅图像的匹配上的特征点对,计算二幅文本图像所在平面之间的透视变化矩阵;
设定src_points为模板文本图像中所在平面的匹配点坐标,大小为2xN,其中,N表示点的数目;
设定dst_points为局部图像所在平面的匹配点坐标,大小为2xN;
透视变化矩阵为3×3的矩阵,使得
其中(xi,yi,1)为dst_points一个点的坐标,(x′i,y′i,1)为src_point一个点的坐标;
输出的3x3的透视变化矩阵,使得反投影错误最小,即下式最小:
作为本发明的一种优选方案,步骤S5中,将局部图像通过变换矩阵得到变换后的局部图像的方法包括:
第三行(h31,h32,h33)是控制放大缩小的系数,为此将(h31,h32,h33)变化成(h31/scale,h32/scale,h33/scale),scale为局部图像变化后相对于模板图像的放大系数;通过透视变化矩阵变换后得到的局部图像,分辨率是原模板图像的scale倍;
此时按照修改后的透视变化矩阵,将局部图像都变换到同一坐标系下,而后进行下一步的拼接处理。
作为本发明的一种优选方案,所述方法进一步包括步骤S7:拼接全图的后处理步骤:
如果所有局部图像拼接出来的全图,出现漏洞或者缺角时,此时可以将模板图像放大scale倍,然后直接用模板图像在该区域的像素填充缺失部分的区域,通过上述后处理,保证得到完整的图像。
作为本发明的一种优选方案,步骤S6中,将所有变换后的局部图像进行拼接的方法包括:将需要拼接的局部图像变化到同一坐标系之后,进行图像的拼接。
一种文本图像的拼接方法,所述方法包括:
步骤110,获取模板图像;
步骤120,获取所有的文本局部图像;
步骤130,将一幅还没有进行处理的局部图像与模板图像进行特征匹配,得到特征匹配点对;
步骤140,判断特征匹配是否成功;判断标准:匹配上的特征点对是否达到设定值;若低于设定值,无法计算图像之间的变化矩阵,则判断为失败,转到步骤190;若特征匹配对的点数达到或超过设定值,判断为成功,转到步骤150;
步骤150,通过匹配的特征,计算对应局部图像与模板图像之间的透视变化矩阵,然后将局部图像按照变化矩阵,得到该局部图像变换后的图片;
步骤160,判断:是否所有局部图像都已处理完;如果答案为是,则转到步骤170,否则转到步骤130,处理下一幅局部图像;
步骤170,将所有变化后的文本图像,根据其有效区域将其拼接起来,得到拼接全图;
步骤180,对拼接得到的全图进行后处理;
步骤190,结束。
一种文本图像的拼接系统,所述系统包括:
摄像单元,用以拍摄整幅文本图像作为模板图像,同时用于拍摄该文本的各个局部区域;
特征点匹配单元,用以将一幅还没有进行处理的局部图像与模板图像进行特征匹配,得到特征匹配点对;
透视变换矩阵计算单元,用以计算对应局部图像与模板图像之间的透视变化矩阵;
局部图像变换单元,用以将局部图像按照变化矩阵,得到该局部图像变换后的图像;
拼接单元,用以将所有变化后的文本图像,根据其有效区域将其拼接起来,得到拼接全图。
作为本发明的一种优选方案,所述特征点匹配单元将局部图像跟模板图像进行特征匹配的方法包括:S31,确定感兴趣的特征关键点;S32,提取关键点周围区域的特征向量描述子;S33,通过特征点的欧式距离来匹配各个特征向量描述子;步骤S33中,匹配策略采用最近邻比例匹配:对于二幅图像的特征点匹配,要查找与第一幅图像中某个特征点的对应匹配点,则在第二幅图像中找出与该特征点欧式距离最近的二个特征点,如果最近点的距离dnearst除以第二近点的距离dsec ond小于设定阈值,则认为该最近点为匹配点,否则不接收;
所述透视变换矩阵计算单元根据匹配上的特征点对计算透视变换矩阵的方法包括:根据局部图像与模板图像二幅图像的匹配上的特征点对,计算二幅文本图像所在平面之间的透视变化矩阵;设定src_points为模板文本图像中所在平面的匹配点坐标,大小为2xN,其中,N表示点的数目;设定dst_points为局部图像所在平面的匹配点坐标,大小为2xN;透视变化矩阵为3×3的矩阵,使得
其中(x
i,y
i,1)为dst_points一个点的坐标,(x′
i,y′
i,1)为src_point一个点的坐标;输出的3x3的透视变化矩阵,使得反投影错误最小,即下式最小:
所述局部图像变换单元将局部图像通过变换矩阵得到变换后的局部图像的方法包括:修改透视变化矩阵
第三行(h
31,h
32,h
33)是控制放大缩小的系数,为此将(h
31,h
32,h
33)变化成(h
31/scale,h
32/scale,h
33/scale),scale为局部图像变化后相对于模板图像的放大系数;通过透视变化矩阵变换后得到的局部图像,分辨率是原模板图像的scale倍;此时按照修改后的透视变化矩阵,将局部图像都变换到同一坐标系下,而后进行下一步的拼接处理;
所述拼接单元将所有变换后的局部图像进行拼接的方法包括:将需要拼接的局部图像变化到同一坐标系之后,进行图像的拼接;
所述系统进一步包括后处理单元,用以实现拼接全图的后处理步骤:如果所有局部图像拼接出来的全图,出现漏洞或者缺角时,此时可以将模板图像放大scale倍,然后直接用模板图像在该区域的像素填充缺失部分的区域,通过上述后处理,保证得到完整的图像。
为了实行本发明,需具备如下硬件条件:智能手机或者数码相机,而且该设备中需要有一般的运算和存储装置,包括一定频率的CPU(中央处理器),有一定用来运算的内存和用来存储系统软件,应用软件和各种数据的存储空间等。智能手机上的相机或者数码相机需要有自动对焦的功能。
本发明的有益效果在于:本发明提出的文本图像的拼接方法及系统,将拍摄的局部文本图像跟模板图像进行特征匹配,这种基于模板图像的特征匹配方法不仅能够提高匹配的速度而且保证匹配的准确性,让接下来计算出来的透视变换矩阵更加准确。另外,每次计算局部图像的透视变化矩阵时,都是参考模板图像的,即将局部图像变化到模板图像的平面上去,这样保证拼出来的图片都在一个平面上,累计差小,使最后拼接出来的高分辨率全图有着很好的效果。
本发明不需要事先知道各个局部文本图像的位置,对各个局部图像之间的重叠区域也没有要求,不限制用户拍摄文本图像时的角度和距离。
附图说明
图1为本发明文本图像的拼接方法的流程图。
图2为模板图像分割成若干局部图像的示意图。
图3为分别拍摄局部图像的示意图。
具体实施方式
下面结合附图详细说明本发明的优选实施例。
实施例一
本发明揭示了一种文本图像的拼接方法。该方法将多幅局部文本图像通过拼接技术得到一幅高分辨的文本全图,拼接出来的全图跟只用相机拍摄原始文本图像相比,拼出来的全图要清楚,像素更高,能达到千万像素级。本发明解决了一般手机拍摄较大文档时,文本图像分辨率低,文字不清楚的问题。
请参阅图1,本发明文本图像的拼接方法的具体步骤如下:
【步骤110】获取模板图像。
获取模板文本图像的方式包括:
调整相机离文档的距离,当要拍摄的文档恰好充满整个手机屏幕,此时按下拍摄按钮,得到初始的文本图像。然后将该初始文本图像作为模板图像用于接下来的特征匹配。
【步骤120】获取所有的文本局部图像。
获取局部文本图像的拍摄方法包括:
调整相机的距离,使相机离文档更近些,当所要拍摄的文档局部区域占整个文档面积的1/6至1/3时(具体由用户自主决定),按下拍摄按钮,此时由于相机距离文档较近,所获得局部图像中的文字将更加清楚。然后移动相机,直到拍摄到的局部图像覆盖了整个文档区域。如图2、图3所示。
【步骤130】将一幅还没有进行处理的局部图像与模板图像进行特征匹配,得到特征匹配点对。
局部图像跟模板图像进行特征匹配的方法如下:
在现有技术中,提取图像中的特征点,然后根据特征点的描述子进行匹配的方法有很多,其中SIFT(scale invariant Features)就是一种很好的尺度不变局部特征,它对平移、旋转、尺度、亮度变化具有不变性,同时对一定范围内的噪声、仿射变换以及光照变化也都保持一定程度的鲁棒性,因此广泛应用图像之间的特征匹配(Lowe,D.Distinctive image features from scale-invariantkeypoints,IJCV,volume 60,pages 91-110,2004)。基于SIFT的特征匹配包括三个步骤:第一,确定感兴趣的特征关键点(feature detection)。第二,提取关键点周围区域的特征向量描述子(feature description)。第三,各个特征向量描述子之间的匹配(feature matching)。度量的方法一般采用欧式距离。
本实施例中,匹配策略采用最近邻比例匹配:比如对于二幅图像的特征点匹配,要查找与第一幅图像中某个特征点的对应匹配点,则在第二幅图像中找出与该特征点欧式距离最近的二个特征点,如果最近点的距离dnearst除以第二近点的距离dsecond小于设定阈值,这认为该最近点为匹配点,否则不接收。这种匹配方法准确率比较高,因为是匹配点的话,第一近邻点代表正确匹配点,则第二近邻点为不正确匹配点。一般情况下,不正确点的距离要比正确点的距离大。由此可以推出dnearst/dsec ond的比值比较小。如果不是匹配点,由于第一近和第二近的特征向量都是不匹配,二者的距离差异性比较小,因此dneast/dsec ond比值将会比较接近1。通过最近邻匹配,设置合理的的比例阈值,一般设置为0.7,就可以很好的找出匹配点。
【步骤140】判断特征匹配是否成功。判断标准:匹配上的特征点对是否达到设定值,例如达到四个以上。如低于四个,无法计算图像之间的变化矩阵,则判断为失败,转到步骤190,如特征匹配对的点数超过四个,判断为成功,转到步骤150。
【步骤150】通过匹配上的特征,计算二个平面之间的几何变化矩阵,然后将局部图像按照变化矩阵,得到该局部图像变换后的图片。
根据匹配上的特征点对计算透视变换矩阵的方法包括:
根据二幅图像的匹配上的特征点对,计算二幅文本图像所在平面之间的透视变化矩阵(homography矩阵)。
设定src_points为初始文本图像中所在平面的匹配点坐标,大小为2xN,其中,N表示点的数目;设定dst_points为局部图像所在平面的匹配点坐标,大小为2xN;透视变化矩阵为3×3的矩阵,使得其中(xi,yi,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的homography矩阵,使得反投影错误最小,即下式最小:
将局部图像通过变换矩阵得到变换后的局部图像的方法包括:
得到透视变化矩阵(homography矩阵)之后,如果将局部图像的每个像素点直接按照此homography矩阵进行变换的话,那样每个局部图像虽然都变换到同一坐标系下,但是变化出来的局部图像也同时缩小到跟模板图像同一分辨率。
为了保证变换后局部图像所拼接出来的全图,能够比原始文本图像分辨率高,为此修改homography矩阵:
第三行(h31,h32,h33)是控制放大缩小的系数,为此本实施例将(h31,h32,h33)变化成(h31/scale,h32/scale,h33/scale),scale为局部图像变化后相对于初始文本图像的放大系数,这样通过homography矩阵变换后得到的局部图像,分辨率是原模板图像(初始文本图像)的scale倍。scale一般取2。
此时按照修改后的homography矩阵,将局部图像都变换到同一坐标系下,进行下一步的拼接处理即可。
【步骤160】判断:是否所有局部图像都已处理完;如果答案为是,则转到步骤170,否则转到步骤130,处理下一幅局部图像。
【步骤170】将所有变化后的文本图像,根据其有效区域将其拼接起来,得到拼接全图。
将所有变换后的局部图像进行拼接的方法包括:
将需要拼接的局部图像变化到同一坐标系之后,就可以进行图像的拼接,图像的拼接过程是个广为人知的技术,此处不再细述。
【步骤180】对拼接得到的全图进行后处理。
拼接全图的后处理的方法包括:
如果所有局部图像拼接出来的全图,出现漏洞或者缺角时,此时可以将初始文本图像放大scale倍,然后直接用初始文本图像在该区域的像素填充缺失部分的区域,通过这个后处理,可以保证得到完整的图像。
【步骤190】结束。
综上所述,本发明提出的文本图像的拼接方法及系统,将拍摄的局部文本图像跟模板图像进行特征匹配,这种基于模板图像的特征匹配方法不仅能够提高匹配的速度而且保证匹配的准确性,让接下来计算出来的透视变换矩阵更加准确。另外,每次计算局部图像的透视变化矩阵时,都是参考模板图像的,即将局部图像变化到模板图像的平面上去,这样保证拼出来的图片都在一个平面上,累计差小,使最后拼接出来的高分辨率全图有着很好的效果。
本发明不需要事先知道各个局部文本图像的位置,对各个局部图像之间的重叠区域也没有要求,不限制用户拍摄文本图像时的角度和距离。
实施例二
本实施例揭示一种文本图像的拼接方法,所述方法包括:
S1,获取模板图像;
S2,获取所有的文本局部图像;
S3,将一幅还没有进行处理的局部图像与模板图像进行特征匹配,得到特征匹配点对;
S4,匹配成功后,通过匹配的特征,计算对应局部图像与模板图像之间的透视变化矩阵;
S5,然后将局部图像按照变化矩阵,得到该局部图像变换后的图像;
S6,将所有变化后的文本图像,根据其有效区域将其拼接起来,得到拼接全图。
以上各步骤的具体内容可以参考实施例一。
一种文本图像的拼接系统,所述系统包括:摄像单元、特征点匹配单元、透视变换矩阵计算单元、局部图像变换单元、拼接单元、后处理单元。
摄像单元用以拍摄整幅文本图像作为模板图像,同时用于拍摄该文本的各个局部区域;
特征点匹配单元用以将一幅还没有进行处理的局部图像与模板图像进行特征匹配,得到特征匹配点对;
透视变换矩阵计算单元用以计算对应局部图像与模板图像之间的透视变化矩阵;
局部图像变换单元用以将局部图像按照变化矩阵,得到该局部图像变换后的图像;
拼接单元用以将所有变化后的文本图像,根据其有效区域将其拼接起来,得到拼接全图。
其中,所述特征点匹配单元将局部图像跟模板图像进行特征匹配的方法包括:S31,确定感兴趣的特征关键点;S32,提取关键点周围区域的特征向量描述子;S33,通过特征点的欧式距离来匹配各个特征向量描述子;步骤S33中,匹配策略采用最近邻比例匹配:对于二幅图像的特征点匹配,要查找与第一幅图像中某个特征点的对应匹配点,则在第二幅图像中找出与该特征点欧式距离最近的二个特征点,如果最近点的距离dnearst除以第二近点的距离dsec ond小于设定阈值,则认为该最近点为匹配点,否则不接收。
所述透视变换矩阵计算单元根据匹配上的特征点对计算透视变换矩阵的方法包括:根据局部图像与模板图像二幅图像的匹配上的特征点对,计算二幅文本图像所在平面之间的透视变化矩阵;设定src_points为模板文本图像中所在平面的匹配点坐标,大小为2xN,其中,N表示点的数目;设定dst_points为局部图像所在平面的匹配点坐标,大小为2xN;透视变化矩阵为3×3的矩阵,使得
其中(x
i,y
i,1)为dst_points一个点的坐标,(x′
i,y′
i,1)为src_point一个点的坐标;输出的3x3的透视变化矩阵,使得反投影错误最小,即下式最小:
所述局部图像变换单元将局部图像通过变换矩阵得到变换后的局部图像的方法包括:修改透视变化矩阵
第三行(h
31,h
32,h
33)是控制放大缩小的系数,为此将(h
31,h
32,h
33)变化成(h
31/scale,h
32/scale,h
33/scale),scale为局部图像变化后相对于模板图像的放大系数;通过透视变化矩阵变换后得到的局部图像,分辨率是原模板图像的scale倍;此时按照修改后的透视变化矩阵,将局部图像都变换到同一坐标系下,而后进行下一步的拼接处理。
所述拼接单元将所有变换后的局部图像进行拼接的方法包括:将需要拼接的局部图像变化到同一坐标系之后,进行图像的拼接。
所述后处理单元用以实现拼接全图的后处理步骤:如果所有局部图像拼接出来的全图,出现漏洞或者缺角时,此时可以将模板图像放大scale倍,然后直接用模板图像在该区域的像素填充缺失部分的区域,通过上述后处理,保证得到完整的图像。
这里本发明的描述和应用是说明性的,并非想将本发明的范围限制在上述实施例中。这里所披露的实施例的变形和改变是可能的,对于那些本领域的普通技术人员来说实施例的替换和等效的各种部件是公知的。本领域技术人员应该清楚的是,在不脱离本发明的精神或本质特征的情况下,本发明可以以其它形式、结构、布置、比例,以及用其它组件、材料和部件来实现。在不脱离本发明范围和精神的情况下,可以对这里所披露的实施例进行其它变形和改变。