CN107845058A - 一种基于边缘线的三维重构实现投影畸变矫正的方法 - Google Patents

一种基于边缘线的三维重构实现投影畸变矫正的方法 Download PDF

Info

Publication number
CN107845058A
CN107845058A CN201710901115.1A CN201710901115A CN107845058A CN 107845058 A CN107845058 A CN 107845058A CN 201710901115 A CN201710901115 A CN 201710901115A CN 107845058 A CN107845058 A CN 107845058A
Authority
CN
China
Prior art keywords
image
edge line
lower edge
page
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710901115.1A
Other languages
English (en)
Inventor
陶冰洁
赖南英
李洪川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Great Bear Intelligent Technology Co Ltd
Original Assignee
Chengdu Great Bear Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Great Bear Intelligent Technology Co Ltd filed Critical Chengdu Great Bear Intelligent Technology Co Ltd
Priority to CN201710901115.1A priority Critical patent/CN107845058A/zh
Publication of CN107845058A publication Critical patent/CN107845058A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

本发明公开一种基于边缘线的三维重构实现投影畸变矫正的方法,属于数字图像处理中的图像矫正领域。本发明重点是将弯曲书页的几何形状建立为具有一定普适性的推广柱面模型,基本原理为首先提取出弯曲书页图像中的书页边缘线而后根据实际书页高度、拍摄高度、拍摄焦距等简单易得的参数,通过几何成像的理论恢复书页图像中书页边缘的三维形状,从而得到图像上弯曲书页边缘线上任意一点到书页中缝起点的真实距离,进一步在推广的柱面模型上,直接采用简便的直线线性插值方法,得到弯曲书页图像上所有点与真实位置点的映射关系,从而实现矫正。实验结果表明,该方法不仅高效快捷,而且能够保证较好的矫正精度,具有实用价值。

Description

一种基于边缘线的三维重构实现投影畸变矫正的方法
技术领域
本发明涉及图像处理技术领域,尤其涉及一种基于边缘线的三维重构实现投影畸变矫正的方法。
背景技术
随着计算机和网络技术的普及,电子版文档凭借其易于储存利用、传播快捷简便的优势被越来越多的人们所接受。因此,将原来以纸作为载体的资料转化为电子版文档,也就是纸质文档的数字化无论是在日常办公中,还是在图书馆资料管理中的应用都日益增加。
非接触式扫描作为一种新型的纸质文档数字化方式,相比于主流的接触式扫描仪存在着许多优势。但它目前主要的问题是扫描得到的图像存在着弯曲投影畸变。弯曲投影畸变是指当文档表面不再是平面而发生弯曲变形时经过相机弯曲成像后产生的畸变。这时图像中文字行由直线变成不规则的曲线,文字及图形图像均存在挤压和扭曲。文档图像的变形对后续处理工作,如识别、数字文档的版面分析、格式处理带来极大困难。
发明内容
本发明的目的在于:为解决现有的非接触式扫描中出现弯曲投影畸变的问题,本发明提供一种基于边缘线的三维重构实现投影畸变矫正的方法。
本发明采用的技术方案如下:
一种基于边缘线的三维重构实现投影畸变矫正的方法,包括如下步骤:
步骤1:求出原始图像进行预处理后得到上下边缘线。
步骤2:计算上下边缘线上所有的点与书脊深度比值,根据深度比值得到上下边缘形变曲线;并将上下边缘形变曲线分割成左页、右页两部分。
步骤3:以书脊位置作为起点,分别对左页部分和右页部分的边缘形变曲线计算差分。
步骤4:以书脊位置作为起点,用差分计算左页部分和右页部分上下边缘线的线积分,作为恢复函数。
步骤5:根据右页和左页的上下边缘线长度,确定恢复原图的起始终止位置,以及上下边缘线终止位置对应的恢复函数值,即恢复函数的最大值,并将恢复函数的最大值作为映射宽度。
步骤6:建立新图像,将图像需要恢复的位置根据恢复函数以及映射宽度与新图像宽度的比例,映射到新图像中去,得到弯曲矫正后的图像。
所述步骤1的具体步骤包括:
步骤11:选取符合要求的书页原始图像,读入初始图像f(x,y),将初始图像转化为灰度图像fgray(x,y),再将灰度图像fgray(x,y)转化为进行二值化得到二值化图像fbinary(x,y)。
步骤12:找出二值化图像fbinary(x,y)的上下的边缘线,分别记为gup(y)和gdown(y)。
具体地,所述步骤11的具体步骤如下:
步骤111:选取包含完整上下边缘、书页背景与书页区分明显的书页进行拍摄,获得书页原始图像,拍摄时书页处于相机的正下方并垂直于相机。
步骤112:以原始图像的高度和宽度所在的直线作为x轴和y轴,读取原始图像f(x,y),图像高度和宽度分别为m和n;步骤13:将初始图像f(x,y)转换成灰度图像fgray(x,y),其中灰度图像fgray(x,y)的每个像素点的灰度值的公式如下:
其中,Rf(x,y)表示初始图像f(x,y)红色通道每个像素点的像素值;Gf(x,y)表示初始图像f(x,y)绿色通道每个像素点的像素值;Bf(x,y)表示初始图像f(x,y)蓝色通道每个像素点的像素值,(x,y)表示初始图像的每个像素点。
步骤114:将灰度图像进行使用OTSU自动阈值分割法二值化处理得到二值化图像fbinary(x,y)。
具体地,所述步骤12的具体步骤如下:
步骤121:找出二值化图像fbinary(x,y)的上下的边缘线,遍历fbinary(x,y)的每一列,从上到下寻找第一个灰度值为1的点,即认为该点就是边缘线中的一点,记为gup(y);每列都得到一个点,这些点的连线即认为是上边缘线;同理从下往上遍历每一列,得到下边缘线gup(y)。
步骤122:去除偏离边缘线的误差点,具体地,包括如下步骤:步骤221:计算上边缘线gup(y)的平均值gupaverage
步骤1222:遍历gup(y),如果存在y0使gup(y0)与gup(y0+1)的绝对值差距大于10,则对比|gup(y0)-gupaverage|与|gup(y0+1)-gupaverage|的大小,若|gup(y0)-gupaverage|>|gup(y0+1)-gupaverage|
则取gup(y0)=gup(y0+1);若
|gup(y0)-gupaverage|≤|gup(y0+1)-gupaverage|
则取gup(y0+1)=gup(y0);
步骤1223:对下边缘线gdown(y)进行相同的操作。
进一步地,所述步骤114的具体步骤如下:
步骤1141:计算灰度图像fconv(x,y)的灰度平均值,设为
步骤1142:对于灰度值t(0≤t≤255),遍历fconv(x,y)的所有像素点,将所有点分成两部分,分别为灰度值小于等于t的像素点集合A和灰度值大于t的像素点集合B;
步骤1143:分别计算A和B中的点占所有像素点的数目占所有像素点的数目的比例,记为PA和PB,再计算A和B像素点的平均像素值,记为
步骤1144:计算
依次令t=1,2,3…255,得到所有的ICVt,比较其结果,当
t0就是该方法得到的最佳阈值;
步骤1145:以t0为阈值,将灰度图像fgray(x,y)转化为灰度图像二值化图像fbinary(x,y)。
具体地,所述步骤2的具体步骤如下:
步骤21:找出上下边缘线书脊所在坐标;遍历gup(y),其函数值最大的y取值就是书脊所在的位置,为gup(y1);遍历gdown(y),其函数值最小的y取值就是书脊所在的位置,为gdown(y2)。
步骤22:计算上下边缘线的深度比值,具体地,包括如下步骤:
步骤221:以书页在上下方向的中线到上下边缘线的垂直距离作为上下边缘线的深度;书页在图像中央,取图像的中线作为书页中线,令其为x=x0;上下边缘线的深度分别为:
|gup(y)-x0|
|gdown(y)-x0|;
步骤222:计算上下边缘线上书脊位置的深度跟其他点的深度的比值,得到边缘线的深度比值;上边缘线深度比值表达式为:
下边缘深度比值表达式为:
步骤223:得到上下边缘形变曲线;形变曲线和深度比值具有相同的形状,呈正比例关系;其比例系数α与拍摄高度、拍摄焦距有关,应根据实际情况设置,比例系数α的值设置在5000左右。
上边缘形变曲线表达式为:
Hup(y)=αhup(y)
下边缘形变曲线表达式为:
Hdown(y)=αhdown(y);
步骤23:以书脊在y轴方向上的位置y1和y2为根据,将边缘形变曲线分割为左页部分Hupleft(y)和Hdownleft(y)以及右页部分Hupright(y)和Hdownright(y),分别用于恢复左边页和右边页;
具体地,所述步骤3的具体步骤如下:
步骤31:以右边页为例,分别以书脊在y轴方向上的位置y1和y2作为起点,计算上下边缘线形变曲线每个点的差分,上边缘线形变曲线的差分为:
difupright(y)=Hupright(y)-Hupright(y-1);
下边缘线曲线的差分为:
difdownright(y)=Hdownleft(y)-Hdownleft(y-1)。
具体地,所述步骤4的具体步骤如下:
步骤41:以书脊位置y1和y2作为起点,用差分计算得到上下边缘线每个点的线积分intupright(y)和intdownright(y),作为恢复函数,上边缘恢复函数为:
intupright(y1)=0
下边缘恢复函数为:
intdownright(y2)=0。
具体地,所述步骤5的具体步骤如下:
步骤11:根据上下边缘线,确定恢复时原图要用到的部分的起始终止位置;上边缘从书脊位置y1到图像右边缘ym,设有m1个点,下边缘从书脊位置y2到右边缘ym,设有m2个点;取两者中的较小值设为mmin;则上边缘起始终止位置为:
y1<y<y1+mmin
下边缘的起始终止位置为:
y2<y<y2+mmin
步骤12:根据上下边缘线终止位置的恢复函数值确定恢复结果的映射宽度;分别是intupright(y1+mmin)和intdownright(y2+mmin),取两者中的较小值,设为w。
具体地,所述步骤6的具体步骤如下:
步骤61:建立新图像F(x,y);根据所需要的新图像大小,建立M×N的空白图像,得到上一步中映射宽度和新图像宽度的比值:
步骤62:将原图中选中的部分映射到新图像中;对于新图像中的任意一点(x′,y′),找其在原图中的像素值;步骤为:
步骤621:分别在上下恢复函数intupright(y)和intdownright(y)中,寻找函数值最接近βy′的y值,分别令其为yup和ydown,对应的边缘线上的点为(gup(y),yup)和(gdown(y),ydown)。
步骤622:得到该点在高度方向的比例系数:
步骤623:根据x轴方向的比例系数和分别在上边缘线和下边缘线的对应点,可得到其实际对应点,其x轴坐标为:
x*=gup(y)+[gdown(y)-gup(y)]×γ
其y轴坐标为:
y*=yup+[ydown-yup]×γ
即新图像F(x,y)任意一点(x′,y′)对应原灰度图fbinary(x,y)中(x*,y*)的像素值。
步骤63:根据步骤62中提供的方法,遍历形图像F(x,y)所有的点,即可得到完整的恢复后右页。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
一.本发明能够将非接触式拍摄的照片,由于书页弯曲而导致的内容畸变矫正过来,达到近似于接触式扫描的效果。
二.本发明简洁快速,处理时间短,能够在非接触式扫描中实现几乎无延迟的人机交互。
三.本发明利用边缘线分离出完整的书页,去除掉书页外无用的背景部分的干扰,只保留书页,进一步提升非接触式扫描的性能。
附图说明
图1为本发明的流程示意图;
图2为本发明的初始图像;
图3为本发明中二值化后的图像;
图4为本发明中上下边缘线以及边缘线上的书脊坐标图像;
图5为本发明中上下边缘线的深度比值图像;
图6为本发明中上下边缘线的恢复函数(线积分)图像;
图7为本发明中右页矫正后的图像。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本实施例中的基于边缘线的三维重构实现投影畸变矫正的方法,包括以下步骤:
步骤11:选取符合要求的书页原始图像,读入初始图像f(x,y),将初始图像转化为灰度图像fgray(x,y),再将灰度图像fgray(x,y)进行二值化处理的到对初得到二值化图像fbinary(x,y);具体步骤如下:
步骤111:选取包含完整上下边缘、书页背景与书页区分明显的书页进行拍摄,获得书页原始图像,拍摄时书页处于相机的正下方并垂直于相机,书页的背景最好为黑色。
步骤112:以原始图像的高度和宽度所在的直线作为x轴和y轴,读取原始图像f(x,y),图像高度(x轴)和宽度(y轴)分别为m和n。
步骤113:将初始图像f(x,y)转换成灰度图像fgray(x,y),其中灰度图像fgray(x,y)的每个像素点的灰度值的公式如下:
其中,Rf(x,y)表示初始图像f(x,y)红色通道每个像素点的像素值;Gf(x,y)表示初始图像f(x,y)绿色通道每个像素点的像素值;Bf(x,y)表示初始图像f(x,y)蓝色通道每个像素点的像素值,(x,y)表示初始图像的每个像素点。
步骤114:将将灰度图像进行使用OTSU自动阈值分割法二值化处理得到二值化图像fbinary(x,y)。所述步骤114的具体步骤如下:
步骤1141:计算灰度图像fconv(x,y)的灰度平均值,设为
步骤1142:对于灰度值t(0≤t≤255),遍历fconv(x,y)的所有像素点,将所有点分成两部分,分别为灰度值小于等于t的像素点集合A和灰度值大于t的像素点集合B;
步骤1143:分别计算A和B中的点占所有像素点的数目占所有像素点的数目的比例,记为PA和PB,再计算A和B像素点的平均像素值,记为
步骤1144:计算
依次令t=1,2,3…255,得到所有的ICVt,比较其结果,当
t0就是该方法得到的最佳阈值;
步骤1145:以t0为阈值,将灰度图像fgray(x,y)转化为灰度图像二值化图像fbinary(x,y)。
步骤12:找出二值化图像fbinary(x,y)的上下的边缘线(即书页的上下边缘线),并去除偏离过大的点,分别记为gup(y)和gdown(y);具体步骤如下:
步骤121:找出二值化图像fbinary(x,y)的上下的边缘线,即书页的上下轮廓。遍历fbinary(x,y)的每一列,从上到下寻找第一个灰度值为1的点,即认为该点就是边缘线中的一点,记为gup(y)。每列都得到一个点,这些点的连线即认为是上边缘线。同理从下往上遍历每一列,得到下边缘线gup(y)。
步骤122:去除偏离边缘线的误差点。受背景和光照的影响,边缘线上可能会出现一些错误的点,因此需要剔除。
步骤1221:计算上边缘线gup(y)的平均值gupaverage
步骤1222:遍历gup(y),如果存在y0使gup(y0)与gup(y0+1)的绝对值差距大于10,则对比|gup(y0)-gupaverage|与|gup(y0+1)-gupaverage|的大小,若
|gup(y0)-gupaverage|>|gup(y0+1)-gupaverage|
则取gup(y0)=gup(y0+1)。若
|gup(y0)-gupaverage|≤|gup(y0+1)-gupaverage|
则取gup(y0+1)=gup(y0)。
步骤1223:对下边缘线gdown(y)进行相同的操作。
步骤2:找出上下边缘线书脊所在坐标gup(y1)和gdown(y2),算上下边缘线上所有的点与书脊深度比值hup(y)和hdown(y),根据深度比值得到上下边缘形变曲线Hup(y)和Hdown(y)。同样以书脊位置为基础,将形变曲线分割为左页部分Hupleft(y)和Hdownleft(y)以及右页部分Hupright(y)和Hdownright(y);具体步骤如下:
步骤21:找出上下边缘线书脊所在坐标。遍历gup(y),其函数值最大的y取值就是书脊所在的位置,为gup(y1)。遍历gdown(y),其函数值最小的y取值就是书脊所在的位置,为gdown(y2)。
步骤22:计算上下边缘线的深度比值。
步骤221:计算上下边缘线的深度,深度即书页在上下方向的中线到上下边缘线的垂直距离。书页在图像中央,即可取图像的中线作为书页中线,令其为x=x0。因此上下边缘线的深度分别为:
|gup(y)-x0|
|gdown(y)-x0|
步骤222:计算边缘线上书脊位置的深度跟其他点的深度的比值,得到边缘线的深度比值。上边缘深度表达式为:
下边缘深度表达式为:
步骤223:得到上下边缘形变曲线,形变曲线反应书页在该位置的投影畸变程度,可根据该曲线恢复书页的原始形状。形变曲线和深度比值具有相同的形状,呈正比例关系。其比例系数α与拍摄高度、拍摄焦距有关,应根据实际情况设置,建议设置5000左右。
上边缘形变曲线表达式为:
Hup(y)=αhup(y)
下边缘形变曲线表达式为:
Hdown(y)=αhdown(y)
步骤23:以书脊位置y1和y2为根据,将边缘形变曲线分割为左页部分Hupleft(y)和Hdownleft(y)以及右页部分Hupright(y)和Hdownright(y);
步骤3:以右边页为例,把边缘形变曲线Hupright(y)和Hdownright(y),分别以书脊位置作为为起点计算差分作为梯度,记为difupright(y)和difdownright(y)。具体步骤如下:
步骤31:在上一步中完成了左右页的分割,接下来以右边页为例。分别以书脊位置在y轴方向上的y1和y2作为起点,计算上下边缘线形变曲线每个点的差分。上边缘线形变曲线的差分为:
difupright(y)=Hupright(y)-Hupright(y-1)
下边缘线深度比值的差分为:
difdownright(y)=Hdownleft(y)-Hdownleft(y-1)
进一步,所述步骤4的具体步骤如下:
步骤4:以书脊位置作为起点,用差分计算得到上下边缘线的线积分intupright(y)和intdownright(y),作为恢复函数。具体步骤如下:
步骤41:以书脊位置y1和y2作为起点,用差分计算得到上下边缘线每个点的线积分intupright(y)和intdownright(y),作为恢复函数。上边缘恢复函数为:
intupright(y1)=0
下边缘恢复函数为:
intdownright(y2)=0
步骤5:根据上下边缘线,确定恢复原图的起始终止位置,以及上下边缘线终止位置的映射长度(即积分值),确定恢复结果的宽度;具体步骤如下:
步骤51:根据上下边缘线,确定恢复时原图要用到的部分的起始终止位置。上边缘从书脊位置y1到图像右边缘ym,设有m1个点,下边缘从书脊位置y2到右边缘ym,设有m2个点。取两者中的较小值设为mmin。则上边缘起始终止位置为:
y1<y<y1+mmin
下边缘的起始终止位置为:
y2<y<y2+mmin
步骤52:根据上下边缘线终止位置的恢复函数值(即积分长度),确定恢复结果的映射宽度。分别是intupright(y1+mmin)和intdownright(y2+mmin),取两者中的较小值设为w。
步骤6:建立新图像,设置所需要的长宽像素值,将灰度图像fgray(x,y)需要恢复的位置根据上下变换曲线intupright(y)和intdownright(y)以及映射宽度与新图像宽度的比例,映射到新图像中去,就得到了弯曲矫正后的图像;恢复结果基本来就等同于矫正后图像了,但是这个回复结果的长度和宽度都是根据原图计算出来的值,而我们可能需要一个固定大小的图像,比如说是1200*1000,所以最后还需要在恢复结果的基础上进行一下拉伸,拉到1200*1000。
具体步骤如下:
步骤61:建立新图像F(x,y)。根据所需要的新图像大小,建立M×N的空白图像,得到上一步中映射宽度和新图像宽度的比值:
步骤62:将原图中选中的部分映射到新图像中。对于新图像中的任意一点(x′,y′),可以找其在原图中的像素值。方法为:
步骤621:分别在上下恢复函数intupright(y)和intdownright(y)中,寻找函数值最接近βy′的y值,分别令其为yup和ydown,对应的边缘线上的点为(gup(y),yup)和(gdown(y),ydown)
步骤622:得到该点在高度方向的比例系数:
步骤623:根据x轴方向的比例系数和分别在上边缘线和下边缘线的对应点,可得到其实际对应点,其x轴坐标为:
x*=gup(y)+[gdown(y)-gup(y)]×γ
其y轴坐标为:
y*=yup+[ydown-yup]×γ
即新图像F(x,y)任意一点(x′,y′)对应原灰度图fbinary(x,y)中(x*,y*)的像素值。
步骤63:根据步骤62中提供的方法,遍历形图像F(x,y)所有的点,即可得到完整的恢复后右页。

Claims (9)

1.一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,包括如下步骤:
步骤1:求出原始图像进行预处理后得到上下边缘线;
步骤2:计算上下边缘线上所有的点与书脊深度比值,根据深度比值得到上下边缘形变曲线;并将上下边缘形变曲线分割成左页、右页两部分;
步骤3:以书脊位置作为起点,分别对左页部分和右页部分的边缘形变曲线计算差分;
步骤4:以书脊位置作为起点,用差分计算左页部分和右页部分上下边缘线的线积分,作为恢复函数;
步骤5:根据右页和左页的上下边缘线长度,确定恢复原图的起始终止位置,以及上下边缘线终止位置对应的恢复函数值,即恢复函数的最大值,并将恢复函数的最大值作为映射宽度;
步骤6:建立新图像,将图像需要恢复的位置根据恢复函数以及映射宽度与新图像宽度的比例,映射到新图像中去,得到弯曲矫正后的图像。
2.根据权利要求1所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤1的具体步骤包括:
步骤11:选取符合要求的书页原始图像,读入初始图像f(x,y),将初始图像转化为灰度图像fgray(x,y),再将灰度图像fgray(x,y)转化为进行二值化得到二值化图像fbinary(x,y);
步骤12:找出二值化图像fbinary(x,y)的上下的边缘线,分别记为gup(y)和gdown(y);
所述步骤11的具体步骤如下:
步骤111:选取包含完整上下边缘、书页背景与书页区分明显的书页进行拍摄,获得书页原始图像,拍摄时书页处于相机的正下方并垂直于相机;
步骤112:以原始图像的高度和宽度所在的直线作为x轴和y轴,读取原始图像f(x,y),图像高度和宽度分别为m和n;
步骤113:将初始图像f(x,y)转换成灰度图像fgray(x,y),其中灰度图像fgray(x,y)的每个像素点的灰度值的公式如下:
<mrow> <msub> <mi>f</mi> <mrow> <mi>g</mi> <mi>r</mi> <mi>a</mi> <mi>y</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mi>f</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>G</mi> <mi>f</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>B</mi> <mi>f</mi> </msub> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> <mn>3</mn> </mfrac> </mrow>
其中Rf(x,y)表示初始图像f(x,y)红色通道每个像素点的像素值;Gf(x,y)表示初始图像f(x,y)绿色通道每个像素点的像素值;Bf(x,y)表示初始图像f(x,y)蓝色通道每个像素点的像素值,(x,y)表示初始图像的每个像素点;
步骤114:将灰度图像进行使用OTSU自动阈值分割法二值化处理得到二值化图像fbinary(x,y)。
3.根据权利要求2所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤2的具体步骤如下:
步骤121:找出二值化图像fbinary(x,y)的上下的边缘线,遍历fbinary(x,y)的每一列,从上到下寻找第一个灰度值为1的点,即认为该点就是边缘线中的一点,记为gup(y)。;每列都得到一个点,这些点的连线即认为是上边缘线;同理从下往上遍历每一列,得到下边缘线gup(y);
步骤122:去除偏离边缘线的误差点,具体地,包括如下步骤:步骤1221:计算上边缘线gup(y)的平均值gupaverage
步骤1222:遍历gup(y),如果存在y0使gup(y0)与gup(y0+1)的绝对值差距大于10,则对比|gup(y0)-gupaverage|与|gup(y0+1)-gupaverage|的大小,若
|gup(y0)-gupaverage|>|gup(y0+1)-gupaverage|
则取gup(y0)=gup(y0+1);若
|gup(y0)-gupaverage|≤|gup(y0+1)-gupaverage|
则取gup(y0+1)=gup(y0);
步骤1223:对下边缘线gdown(y)进行相同的操作。
4.根据权利要求2所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤114的具体步骤如下:
步骤1141:计算灰度图像fconv(x,y)的灰度平均值,设为
步骤1142:对于灰度值t(0≤t≤255),遍历fconv(x,y)的所有像素点,将所有点分成两部分,分别为灰度值小于等于t的像素点集合A和灰度值大于t的像素点集合B;
步骤1143:分别计算A和B中的点占所有像素点的数目占所有像素点的数目的比例,记为PA和PB,再计算A和B像素点的平均像素值,记为
步骤1144:计算
<mrow> <msub> <mi>ICV</mi> <mi>t</mi> </msub> <mo>=</mo> <msub> <mi>P</mi> <mi>A</mi> </msub> <mo>&amp;times;</mo> <msup> <mrow> <mo>(</mo> <mover> <msub> <mi>X</mi> <mi>A</mi> </msub> <mo>&amp;OverBar;</mo> </mover> <mo>-</mo> <mover> <mi>X</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msub> <mi>P</mi> <mi>B</mi> </msub> <mo>&amp;times;</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>X</mi> <mi>B</mi> </msub> <mo>-</mo> <mover> <mi>X</mi> <mo>&amp;OverBar;</mo> </mover> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow>
依次令t=1,2,3…255,得到所有的ICVt,比较其结果,当
<mrow> <msub> <mi>ICV</mi> <msub> <mi>t</mi> <mn>0</mn> </msub> </msub> <mo>=</mo> <mi>m</mi> <mi>a</mi> <mi>x</mi> <mrow> <mo>(</mo> <msub> <mi>ICV</mi> <mi>t</mi> </msub> <mo>)</mo> </mrow> </mrow>
t0就是该方法得到的最佳阈值;
步骤1145:以t0为阈值,将灰度图像fgray(x,y)转化为灰度图像二值化图像fbinary(x,y)。
5.根据权利要求1所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤3的具体步骤如下:
步骤21:找出上下边缘线书脊所在坐标;遍历gup(y),其函数值最大的y取值就是书脊所在的位置,为gup(y1);遍历gdown(y),其函数值最小的y取值就是书脊所在的位置,为gdown(y2);
步骤22:计算上下边缘线的深度比值,具体地,包括如下步骤:
步骤221:以书页在上下方向的中线到上下边缘线的垂直距离作为上下边缘线的深度;书页在图像中央,取图像的中线作为书页中线,令其为x=x0。;上下边缘线的深度分别为:
|gup(y)-x0|
|gdown(y)-x0|;
步骤222:计算上下边缘线上书脊位置的深度跟其他点的深度的比值,得到边缘线深度比值;上边缘线深度比值表达式为:
<mrow> <msub> <mi>h</mi> <mrow> <mi>u</mi> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <msub> <mi>g</mi> <mrow> <mi>u</mi> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <msub> <mi>g</mi> <mrow> <mi>u</mi> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> <mo>|</mo> </mrow> </mfrac> <mo>;</mo> </mrow>
下边缘深度比值表达式为:
<mrow> <msub> <mi>h</mi> <mrow> <mi>u</mi> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <msub> <mi>g</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <msub> <mi>g</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>x</mi> <mn>0</mn> </msub> <mo>|</mo> </mrow> </mfrac> <mo>;</mo> </mrow>
步骤223:得到上下边缘形变曲线;形变曲线和深度比值具有相同的形状,呈正比例关系;其比例系数α与拍摄高度、拍摄焦距有关,应根据实际情况设置,比例系数α的值设置在5000左右;
上边缘形变曲线表达式为:
Hup(y)=αhup(y);
下边缘形变曲线表达式为:
Hdown(y)=αhdown(y);
步骤23:以书脊位置y1和y2为根据,将边缘形变曲线分割为左页部分Hupleft(y)和Hdownleft(y)以及右页部分Hupright(y)和Hdownright(y),分别用于恢复左边页和右边页;
<mrow> <msub> <mi>H</mi> <mrow> <mi>u</mi> <mi>p</mi> <mi>l</mi> <mi>e</mi> <mi>f</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>H</mi> <mrow> <mi>u</mi> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&lt;</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&amp;GreaterEqual;</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mi>H</mi> <mrow> <mi>u</mi> <mi>p</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>H</mi> <mrow> <mi>u</mi> <mi>p</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&amp;GreaterEqual;</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&lt;</mo> <msub> <mi>y</mi> <mn>1</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mi>H</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> <mi>l</mi> <mi>e</mi> <mi>f</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>H</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&lt;</mo> <msub> <mi>y</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&amp;GreaterEqual;</mo> <msub> <mi>y</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>
<mrow> <msub> <mi>H</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>H</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&amp;GreaterEqual;</mo> <msub> <mi>y</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mn>0</mn> <mo>,</mo> </mrow> </mtd> <mtd> <mrow> <mi>y</mi> <mo>&lt;</mo> <msub> <mi>y</mi> <mn>2</mn> </msub> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>.</mo> </mrow>
6.根据权利要求1所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤3的具体步骤如下:
步骤31:以右边页为例,分别以书脊位置y1和y2作为起点,计算上下边缘线形变曲线每个点的差分,上边缘线形变曲线的差分为:
difupright(y)=Hupright(y)-Hupright(y-1);
下边缘线曲线的差分为:
difdownright(y)=Hdownleft(y)-Hdownleft(y-1)。
步骤32:对左页部分进行同样的处理。
7.根据权利要求1所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤4的具体步骤如下:
步骤41:以书脊在y轴方向上的位置y1和y2作为起点,用差分计算得到上下边缘线每个点的线积分intupright(y)和intdownright(y),作为恢复函数,上边缘恢复函数为:
<mrow> <msub> <mi>int</mi> <mrow> <mi>u</mi> <mi>p</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>int</mi> <mrow> <mi>u</mi> <mi>p</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msqrt> <mrow> <mn>1</mn> <mo>+</mo> <msub> <msup> <mi>dif</mi> <mn>2</mn> </msup> <mrow> <mi>u</mi> <mi>p</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow>
intupright(y1)=0
下边缘恢复函数为:
<mrow> <msub> <mi>int</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>int</mi> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <msqrt> <mrow> <mn>1</mn> <mo>+</mo> <msub> <msup> <mi>dif</mi> <mn>2</mn> </msup> <mrow> <mi>d</mi> <mi>o</mi> <mi>w</mi> <mi>n</mi> <mi>r</mi> <mi>i</mi> <mi>g</mi> <mi>h</mi> <mi>t</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow>
intdownright(y2)=0。
8.根据权利要求1所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤5的具体步骤如下:
步骤51:根据上下边缘线,确定恢复时原图要用到的部分的起始终止位置;上边缘从书脊位置y1到图像右边缘ym,设有m1个点,下边缘从书脊位置y2到右边缘ym,设有m2个点;取两者中的较小值设为mmin;则上边缘起始终止位置为:
y1<y<y1+mmin
下边缘的起始终止位置为:
y2<y<y2+mmin
步骤52:根据上下边缘线终止位置的恢复函数值确定恢复结果的映射宽度;分别是intupright(y1+mmin)和intdownright(y2+mmin),取两者中的较小值,设为w。
9.根据权利要求7所述的一种基于边缘线的三维重构实现投影畸变矫正的方法,其特征在于,所述步骤6的具体步骤如下:
步骤61:建立新图像F(x,y);根据所需要的新图像大小,建立M×N的空白图像,得到上一步中映射宽度和新图像宽度的比值:
<mrow> <mi>&amp;beta;</mi> <mo>=</mo> <mfrac> <mi>w</mi> <mi>N</mi> </mfrac> </mrow>
步骤62:将原图中选中的部分映射到新图像中;对于新图像中的任意一点(x′,y′),找其在原图中的像素值;具体步骤为:
步骤621:分别在上下恢复函数intupright(y)和intdownright(y)中,寻找函数值最接近βy′的y值,分别令其为yup和ydown,对应的边缘线上的点为(gup(y),yup)和(gdown(y),ydown);
步骤622:得到该点在高度方向的比例系数:
<mrow> <mi>&amp;gamma;</mi> <mo>=</mo> <mfrac> <msup> <mi>x</mi> <mo>&amp;prime;</mo> </msup> <mi>M</mi> </mfrac> <mo>;</mo> </mrow>
步骤623:根据x轴方向的比例系数和分别在上边缘线和下边缘线的对应点,可得到其实际对应点,其x轴坐标为:
x*=gup(y)+[gdown(y)-gup(y)]×γ;
其y轴坐标为:
y*=yup+[ydown-yup]×γ;
即新图像F(x,y)任意一点(x′,y′)对应原灰度图fbinary(x,y)中(x*,y*)的像素值;
步骤63:根据步骤62中提供的方法,遍历形图像F(x,y)所有的点,即可得到完整的恢复后右页。
CN201710901115.1A 2017-09-28 2017-09-28 一种基于边缘线的三维重构实现投影畸变矫正的方法 Pending CN107845058A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710901115.1A CN107845058A (zh) 2017-09-28 2017-09-28 一种基于边缘线的三维重构实现投影畸变矫正的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710901115.1A CN107845058A (zh) 2017-09-28 2017-09-28 一种基于边缘线的三维重构实现投影畸变矫正的方法

Publications (1)

Publication Number Publication Date
CN107845058A true CN107845058A (zh) 2018-03-27

Family

ID=61661525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710901115.1A Pending CN107845058A (zh) 2017-09-28 2017-09-28 一种基于边缘线的三维重构实现投影畸变矫正的方法

Country Status (1)

Country Link
CN (1) CN107845058A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102496023A (zh) * 2011-11-23 2012-06-13 中南大学 像素层面的感兴趣区域提取方法
WO2012120561A1 (ja) * 2011-03-08 2012-09-13 三菱電機株式会社 移動体周辺映像補正装置
CN105354571A (zh) * 2015-10-23 2016-02-24 中国科学院自动化研究所 基于曲线投影的畸变文本图像基线估计方法
CN106504317A (zh) * 2016-10-14 2017-03-15 深圳大学 一种三维模型的外观纹理提取方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012120561A1 (ja) * 2011-03-08 2012-09-13 三菱電機株式会社 移動体周辺映像補正装置
CN102496023A (zh) * 2011-11-23 2012-06-13 中南大学 像素层面的感兴趣区域提取方法
CN105354571A (zh) * 2015-10-23 2016-02-24 中国科学院自动化研究所 基于曲线投影的畸变文本图像基线估计方法
CN106504317A (zh) * 2016-10-14 2017-03-15 深圳大学 一种三维模型的外观纹理提取方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘一斐: "弯曲书页图像处理方法及在古籍数字化中的应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Similar Documents

Publication Publication Date Title
CN111814722B (zh) 一种图像中的表格识别方法、装置、电子设备及存储介质
Stamatopoulos et al. Goal-oriented rectification of camera-based document images
CN106156761B (zh) 面向移动终端拍摄的图像表格检测与识别方法
US9805281B2 (en) Model-based dewarping method and apparatus
US10289924B2 (en) System and method for scanned document correction
Cao et al. A cylindrical surface model to rectify the bound document image
CN111127339B (zh) 一种文档图像的梯形畸变矫正方法及装置
Shafait et al. Document image dewarping contest
JP4395188B2 (ja) 文書画像認識装置および文書画像認識プログラムの記憶媒体
Zhang et al. Marior: Margin removal and iterative content rectification for document dewarping in the wild
CN111275049B (zh) 一种文字图像骨架特征描述符获取的方法及装置
CN113903024A (zh) 一种手写票据数值信息识别方法、系统、介质及装置
CN108197624A (zh) 证书图像校正识别方法及装置、计算机存储介质
CN108335266B (zh) 一种文档图像畸变的矫正方法
CN110059600B (zh) 一种基于指向手势的单行文字识别方法
CN115063279B (zh) 一种文本水印图像的预处理方法和装置
JP4208520B2 (ja) 画像処理装置および画像処理方法、プログラムおよび記憶媒体
CN107845058A (zh) 一种基于边缘线的三维重构实现投影畸变矫正的方法
KR100603618B1 (ko) 어파인 변환을 이용한 문서 영상의 기하학적 왜곡 보정장치 및 방법
CN110826400B (zh) 图片表格用户交互增强识别的方法
Dai et al. Matadoc: margin and text aware document dewarping for arbitrary boundary
Vinod et al. Camera captured document de-warping and de-skewing
US20240029213A1 (en) Document-occluding artifact removal
CN116580129B (zh) 基于距离变换的书法字骨架改进方法、装置及存储介质
Verhoeven et al. UVDoc: Neural Grid-based Document Unwarping

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180327