一种基于手机平台的图像实时校正方法与流程

文档序号:11730148阅读:341来源:国知局
一种基于手机平台的图像实时校正方法与流程

本发明属于计算机图像处理领域,涉及一种基于手机平台的图像实时校正方法。



背景技术:

随着智能手机与移动应用科技的发展和普及,在给人们的生活和工作带来极大便利的同时,导致相当多的人特别是年轻一代越来越依赖于智能手机。然而在许多不当场合下的使用引发了一些令人担忧的负面作用。譬如行人步行时看手机分散了注意力而导致车祸或跌倒受伤的悲剧情况,目前这类事件不断出现在国内外的各种新闻报道中。

鉴于上述现状,一款能够运行于智能手机,可实现对步行者安全防护功能的软件显得尤为迫切。这样一个软件的核心便是要通过手机摄像头实时采集步行方向上前方路面的图像信息,然后利用手机后台运行的识别算法进行路面特征的识别,进而发现隐患并及时发出报警提示,避免悲剧的发生。实现这样的软件需要面临如下几个关键技术问题:

1、手机摄像头在一定的俯仰角情况下拍摄到的图像存在畸变。根据使用者持握手机的方式可以发现图像沿着手机的纵向(即手机y轴方向)和横向(即手机x轴方向)都会存在梯形状失真,采集道路图像中的某些重要特征会因为图像中存在梯形畸变而被弱化,进而影响到后续的图像特征识别的准确性。

现有的基于控制点的图像梯形失真校正方法如图5所示,在畸变的图像中根据下图分别获得它们对应的校正后的标准点,并以此四对点作为控制点计算校正矩阵。

如图5所示,其中a(左上角)、b(右上角)、c(左下角)和d(右下角)四点是畸变后的梯形轮廓上的四个点,efcd四点是分别是abcd四个点对应的校正后图像中的点,现有的算法就是基于这四对控制点来计算校正矩阵的。

这种方法中存在两个问题导致其无法解决基于手机平台的图像梯形失真校正的问题:

(1)现有的算法都人为地忽略了摄像头左右方向的畸变而只考虑摄像头前向单个方向的畸变,这在某些左右畸变很小不影响应用性能的情况下是可以接受的,但是应用于手机平台时,根据大部分使用者手持手机的方式可以看出,走路看手机时手机机身左右两侧也会翘起一定的角度,即手机坐标轴x轴有旋转角度,从而使得在手机坐标轴的x轴方向上也存在不可忽略的梯形失真。但在现有的算法中仅考虑了只存在单个方向梯形失真时的校正方法,无法直接应用于手机摄像头的图像畸变校正。手机摄像头的畸变模型如图6a和图6b所示。图6a为沿手机y轴方向的畸变,图6b为沿手机x轴方向的畸变。

(2)梯形失真表现为两个方面,一方面导致物理世界中的矩形轮廓特征畸变成了梯形轮廓特征;另一方面由相机成像原理可知,畸变图像中还存在如图5ce方向的压缩失真即图像畸变后其长宽比发生了变化。但是现有的基于控制点的算法中只实现了第一个方面的失真校正,这就很有可能导致图像中由于这种畸变引起的某些特征丢失,进而导致应用中特征识别算法的失败。

2、智能终端的运算能力有限,目前大部分普通智能手机的运算能力还难以满足高分辨率图像实时快速校正的需求。故此,需要一种能运行在智能手机平台上的图像快速校正方法。

3、通常程序员利用手机系统提供的cameraapi编程,并从摄像头获取一幅图像。这里获取到的图像并不是原始的ccd传感器(chargecoupleddevice,电荷藕合器件图像传感器)获取的图像数据,而是经过了底层驱动程序的初步处理后的图像数据。所以如果想避开底层驱动而直接在应用层对获取的图像进行校正,传统的基于拍摄模型的校正方法就难以适用了。



技术实现要素:

本发明针对现有的应用需求和技术问题,提出了一种基于手机平台的图像实时校正方法,包括如下步骤:

步骤1,拍摄标准测试图像,利用标准测试图像计算校正矩阵;

步骤2,将校正矩阵数据保存在在线数据库中供实时下载使用;

步骤3,输入手机使用者的身高和前臂长数据信息,得到手机摄像头的拍摄高度,根据拍摄高度在在线数据库中下载该身高对应的所有校正矩阵数据,存储在手机的本地内存中;

步骤4,对手机实时拍摄的图像进行坐标转换:根据从方向传感器实时采集到的角度信息,在手机本地内存中查找与其对应的校正矩阵,根据校正矩阵和给出的转换关系将手机实时拍摄的图像中每一个像素点的坐标转换成校正后图像中的像素点的坐标;

步骤5,灰度插值:接步骤4,使用双线性插值算法进行计算,得到坐标转换后校正图像中每个像素点的灰度值。

本发明步骤1包括如下步骤:

步骤1-1:准备一张足够大,且画满标准小正方形的方格图板,用于拍摄标准测试图像;

步骤1-2:建立坐标系:以手机机身左下角为坐标系原点,以机身长边为y轴,短边为x轴,手机平放时垂直屏幕且向上为z轴方向;将手机固定在三角支架上,调整至特定高度,同时调整x轴和y轴的旋转角度至所需的值(高度分布范围主要从102cm到128cm,并以一定的间隔逐步增加,间隔大小将根据应用的精度要求决定),确定手机摄像头所处的高度、手机y轴绕x轴的旋转角和x轴绕y轴的旋转角(实际放在水平面时这两个角度皆为0,这两个角也是手机的y轴边和x轴边翘起后与水平面的夹角);

步骤1-3:使用手机实时采集一帧标准测试图像;

步骤1-4:对采集到的图像依次进行灰度化和直方图均衡;

步骤1-5:在经过直方图均衡后的图像上挑选出能找到的最大的完整的正方形(这里的正方形是实际的正方形,但由于畸变后在图像中已不再是正方形形状。所以这里可以通过数方格数来确定一个正方形),这个正方形的四个点便就是畸变图像轮廓上的四个点即控制点,依次设为为a(左上角)、b(右上角)、c(左下角)和d(右下角),坐标分别为(xa,ya)、(xb,yb)、(xc,yc)和(xd,yd),所述控制点对应校正后图像中的标准点依次为e、f、c'和d',坐标分别为(xe,ye)、(xf,yf)、(xc',yc')和(xd',yd'),通过如下方法计算标准点e、f、c'、d'的坐标,得到的四对坐标值:

(xe,ye)=(xc,yc-l);

(xf,yf)=(xd,yc-l);

(xc',yc')=(xc,yc);

(xd',yd')=(xd,yc);

其中l为c和d两点的水平像素差,即l=xd–xc;

步骤1-6:将得到的四对坐标值分别代入如下坐标转换方程即转换关系中:

ys'=k5xs+k6ys+k7xsys+k8,

xs'=k1xs+k2ys+k3xsys+k4,

其中,xs'和ys'分别是校正后图像中标准点的横坐标和纵坐标,xs和ys分别是对应的畸变图像中像素点的横坐标和纵坐标;

获得如下八个方程:

解方程后得到八个参数即k1~k8组成的转换矩阵k=[k1,k2,k3,k4,k5,k6,k7,k8,1]t即为校正矩阵,其实质就是上述坐标转换关系的系数集合;

步骤1-7:保持手机的高度不变,旋转手机,改变y轴和x轴旋转角的值。角度的调整方法:y轴旋转角的范围主要分布在12到40度,x轴的旋转角主要分布在-10度到+10度之间,分别都以1度为间隔进行调整。比如选择y轴角度为12度,然后将x轴的角度分别调整为-10度、-9度…9度、10度,对这21个角度分别根据上述步骤计算每种组合下的校正矩阵。然后再将y轴角度增加一度为13度,分别计算此时x轴角度在-10~10度每一度为一个间隔时对应的所有校正矩阵。直到y轴角度到40度全部计算完成。重复步骤1-3~步骤1-6,得到当前高度下全部所需角度对应的校正矩阵数据,并全部存储在应用的在线数据库中;

步骤1-8:改变手机摄像头所在的高度(根据实验统计,此高度主要分布在102cm至128cm之间,每次以多大的间隔调整高度,取决于实际应用中精度的要求。),重复步骤1-1~步骤1-7,计算在新高度下的所有校正矩阵,将获得的全部高度对应的校正矩阵数据存储在数据库中。

本发明步骤1-2中,所述确定手机y轴和x轴相对于水平放置时的旋转角度,包括:手机y轴绕x轴旋转的角度,即机身与拍摄平面之间的夹角,也就是摄像头光轴与拍摄平面的垂线之间的夹角,所在范围主要分布在12度到40度之间。以及x轴绕y轴旋转的角度,即右手持手机时x轴绕y轴旋转的角度主要分布在0到10度之间,左手持手机时x轴绕y轴旋转的角度主要分布在-10度到0度之间。拍摄标准测试图像时的角度组合已经在上面步骤1-7中给出。

上述步骤亦可以采用自动的专用测量装置来实现更高精度的数据采集。

本发明步骤2所述的在线数据库中,以手机摄像头所在高度hd作为表索引即一级索引,每一个使用者特定的身高hu和前臂长hf对应着一个拍摄高度hd,即对应一张特定数据表,表中每条记录存储手机坐标轴的y轴和x轴的一个角度信息以及该角度信息下对应的校正矩阵,以y轴和x轴的旋转角度组合作为每条记录的索引,即二级索引或表内索引。

步骤3中,通过如下方法计算手机摄像头的拍摄高度:

设使用者的身高为hu,腰部的高度为he=0.615*hu,前臂长度为hf,则手持手机时手机摄像头所在的高度即拍摄高度为hd,通过如下公式计算拍摄高度hd:

hd=he+sin(π/6)·hf,

其中身高hu和前臂长度hf由使用者实际测量得到。

本发明步骤4包括如下步骤:

步骤4-1,在手机应用初次启动或认为开启设置选项时,允许用户输入身高和手臂前臂长度等参数,然后应用根据此参数计算出对应的手机摄像头所在的高度hd,再根据高度hd从在线数据库中下载该高度对应的所有校正矩阵数据并存储于手机应用的本地存储空间。

手机的方向传感器分别采集到手机的y轴绕x轴旋转过的角度和x轴绕y轴旋转过的角度,平放在水平面上时这两个角度都为零,以特定的频率实时采集这两个角度的数据,以此获取手机摄像头的俯仰角信息,用其在已经下载到本地的数据表中索引对应的校正矩阵;

传感器数据变化非常快,本发明是在实时采集到一帧图片后立即连续采集五次传感器数据(五个y轴角度和五个x轴角度,且成对采集),以这五个数据的平均数作为最终的角度值,用其在已经下载到本地的数据表中索引对应的校正矩阵。实时图像采集是每秒采集两次,采集完立即开始后续处理。

步骤4-2,对于手机实时拍摄的图像中的像素点i,根据如下公式进行坐标转换:

(xi’,yi’)=t(xi,yi)

其中,t即表示坐标转换关系,xi、yi分别表示手机实时拍摄的图像中像素点i的横坐标和纵坐标,xi’、yi’分别表示校正后的图像中的像素点i的横坐标和纵坐标,所述坐标转换关系t通过如下公式实现:

x′i=k1xi+k2yi+k3xiyi+k4

y′i=k5xi+k6yi+k7xiyi+k8

其中,参数k1~k8组成的矩阵k即为校正矩阵;

步骤4-3,根据步骤4-1获得的角度和拍摄高度数据在手机本地内存中查找对应的校正矩阵,得到参数k1~k8的值,完成坐标转换,得到校正后图像中各个像素点对应坐标,为随后恢复校正图像的灰度做好准备。

本发明所述数据库存储在手机应用的在线服务器上,在手机应用初次启动或人为开启设置选项时,用户输入身高和手臂长度等参数,然后应用软件计算出对应的手机摄像头所在的高度,再以此高度作为数据表的索引,从在线数据库中下载对应的所有校正矩阵数据,并存储于手机应用的本地存储空间。

有益效果:

(一)本发明设计的校正方法解决长宽比失真和两个方向上同时存在梯形失真的问题,从而实现了一种可用于手机摄像头的图像畸变实时校正方法。

(二)本发明中提出分段校正的方法,实现了基于手机平台的实时图像校正:传统上基于控制点的图像校正方法中,同一高度,不同的俯仰角采用不同的校正矩阵。手机中应用时,每次校正图像如果俯仰角与前一次出现微小变化就需要重新计算校正矩阵。而计算校正矩阵的算法相对于其他处理比较耗时,而且往往需要人机交互来获得畸变图像中的四个控制点。这样在手机低头族防护应用中就无法达到对图像实时校正的要求。本发明针对上述的问题,创新地提出了:

(1)将通过标准测试图像计算得到的各种高度和角度对应的校正矩阵数据,存储在手机应用的在线服务器上。在手机应用初次启动或认为开启设置选项时,用户输入身高和手臂长度等参数,应用根据此参数计算出对应的手机摄像头所在的高度,再从在线数据库中下载对应的所有校正矩阵数据,并存储于手机应用的本地存储空间。

利用手机使用者身高和手臂长度计算摄像头高度的方法如下:设使用者的身高为hu,腰部的高度为he=0.615*hu,前臂长度为hf,其中身高hu和前臂长度hf由使用者实际测量得到。则手持手机时手机摄像头所在的高度即拍摄高度为hd,通过如下公式计算拍摄高度hd:

hd=he+sin(π/6)·hf

(2)将实时角度信息(即手机坐标轴y轴和x轴的旋转角度,也就相当于摄像头的俯仰角)作为索引直接调用事先已经计算好的对应该种情况的校正矩阵数据,来校正实时采集到的拍摄角度在指定范围内的一帧图像的方法,即分段校正方法。从而使得本发明中的校正算法能够实现快速实时校正的功能,并能成功地应用到基于手机低头族步行安全防护应用中去。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。

图1为手机坐标轴示意图。

图2为灰度双线性插值示意图。

图3为手机拍摄图像发生梯形状畸变示意图。

图4为畸变轮廓顶点的坐标与校正后图像轮廓顶点坐标的对应关系示意图。

图5为基于控制点的图像梯形失真校正方法示意图。

图6a为沿手机y轴方向的畸变,图6b为沿手机x轴方向的畸变。

图7为梯形畸变校正模型示意图。

图8为控制点选取示意图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

本发明公开了一种基于手机平台的图像实时校正方法,包括如下步骤:

步骤1,拍摄标准测试图像,利用标准测试图像计算出校正矩阵数据;

步骤2,将校正矩阵数据保存在在线数据库中供实时下载使用;

步骤3,输入手机使用者的身高和臂长数据,得到手机摄像头的拍摄高度,根据拍摄高度在在线数据库中下载对应的所有校正矩阵数据,存储在手机的本地内存中;

步骤4,对手机实时拍摄的图像进行坐标转换:根据从方向传感器实时采集到的角度信息,在手机本地内存中查找与其对应的校正矩阵数据,根据校正矩阵和给出的转换关系将手机实时拍摄的图像中每一个像素点的坐标转换成校正后图像中各像素点坐标校正;

步骤5,灰度插值:接步骤4,使用双线性插值算法进行计算,得到坐标转换后校正图像中每个像素点的灰度值。

首先,说明产生梯形畸变的原因:当相机镜头的光轴与所拍摄平面的垂线之间存在一定角度时,所得到的图像会产生畸变。如图3所示,手机y轴倾斜一定角度拍摄物理平面上的矩形方格图案时,就会形成梯形状畸变图形,所以这种畸变通常称之为梯形畸变。图3中,左侧为物理平面上的矩形方格图案,右侧为对应的梯形畸变图像。

梯形畸变导致两个方面的失真。一方面是纵向上,原本平行的两条线畸变后会导致上方逐渐靠近的现象,也就是产生了梯形的两条腰一样的畸变。另一方面,由于图像在纵向上还存在压缩失真,即离相机镜头越远的地方,在图形中压缩越严重。或者说在图像中单位行距代表的实际距离是不均匀的,越往上单位行距代表的实际距离越大。

本发明中使用的图像校正算法是基于控制点的方法实现的。即在用标准正方形方格测试图形拍摄得到的畸变图像上,找到位于该图像中所能找到的已出现畸变的最大正方形轮廓上的四个顶点,根据给定的方法获得这四个点在校正后图像中对应点的坐标,然后利用这四对顶点的坐标值带入上面坐标转换关系t中,从而可以获得八个方程,这样就能计算出方程中的八个参数,具体的,本发明步骤1包括如下步骤:

步骤1-1:准备一张足够大且画满标准小正方形的方格图板,用其拍摄各种情况下的标准测试图像;

步骤1-2:建立坐标系:以手机机身左下角为坐标系原点,以机身长边为y轴,短边为x轴,手机平放时垂直屏幕且向上为z轴方向;将手机固定在三角支架上,调整至特定高度(高度分布范围主要从102cm到128cm,并以一定的间隔逐步增加,间隔大小将根据应用的精度要求决定),同时调整x轴和y轴的旋转角度至所需的值,确定手机摄像头所处的高度、手机y轴绕x轴的旋转角和x轴绕y轴的旋转角(实际放在水平面时这两个角度皆为0,这两个角也是手机的y轴边和x轴边翘起后与水平面的夹角);

步骤1-3:使用手机实时采集一帧标准测试图像;

步骤1-4:对采集到的图像依次进行灰度化和直方图均衡;

步骤1-5:在经过直方图均衡后的图像上挑选出能找到的最大的完整的正方形(这里的正方形是实际的正方形,但由于畸变后在图像中已不再是正方形形状,所以这里可以通过数方格数来确定一个正方形),这个正方形的四个点便就是畸变图像轮廓上的四个点即控制点,依次设为为a(左上角)、b(右上角)、c(左下角)和d(右下角),坐标分别为(xa,ya)、(xb,yb)、(xc,yc)和(xd,yd),所述控制点对应校正后图像中的标准点依次为e、f、c'和d',坐标分别为(xe,ye)、(xf,yf)、(xc',yc')和(xd',yd'),通过如下方法计算标准点e、f、c'、d'的坐标,得到的四对坐标值:

(xe,ye)=(xc,yc-l);

(xf,yf)=(xd,yc-l);

(xc',yc')=(xc,yc);

(xd',yd')=(xd,yc);

其中l为c和d两点的水平像素差,即l=xd–xc;

步骤1-6:将得到的四对坐标值分别代入如下坐标转换方程即转换关系t中:

ys'=k5xs+k6ys+k7xsys+k8,

xs'=k1xs+k2ys+k3xsys+k4,

其中,xs'和ys'分别是校正后图像中标准点的横坐标和纵坐标,xs和ys分别是对应的畸变图像中像素点的横坐标和纵坐标;

获得如下八个方程:

解方程后得到八个参数组成的转换矩阵k=[k1,k2,k3,k4,k5,k6,k7,k8,1]t即为校正矩阵,其实质就是上述坐标转换关系的系数集合;

步骤1-7:保持手机的高度不变,旋转手机,改变y轴和x轴旋转角的值,重复步骤1-3~步骤1-6,得到当前高度下全部所需角度对应的校正矩阵,并全部存储在应用的在线数据库中;

注:角度的调整方法:y轴旋转角的范围主要分布在12到40度之间,x轴的旋转角主要分布在-10度到+10度之间,分别都以1度为间隔进行调整。比如选择y轴角度为12度,然后将x轴的角度分别调整为-10度、-9度…9度、10度,对这21个角度分别根据上述步骤计算每种组合下的校正矩阵。然后再将y轴角度增加一度为13度,分别计算此时x轴角度在-10~10度下每一度为一个间隔时对应的所有校正矩阵。直到y轴角度到45度全部计算完成。

步骤1-8:改变手机摄像头所在的高度,重复步骤1-1~步骤1-7,计算在新高度下的所有校正矩阵,将获得的全部高度对应的校正矩阵存储在数据库中。

这里的高度指的是拍摄时手机所在的高度,根据实验统计,大部分高度分布在102cm至128cm之间。至于高度每次以多大的间隔变化,取决于实际应用中的精度要求。

本发明步骤1-2中,所述确定手机y轴和x轴相对于水平放置时的旋转角度,包括:手机y轴绕x轴旋转的角度,即机身与拍摄平面之间的夹角,也就是摄像头光轴与拍摄平面的垂线之间的夹角,其范围主要分布在12度到40度之间。以及x轴绕y轴旋转的角度,即右手持手机时x轴绕y轴旋转的角度主要分布在0到10度之间,左手持手机时x轴绕y轴旋转的角度主要分布在-10度到0度之间。拍摄标准测试图像时的角度组合已经在上面步骤1-7中给出。

在拍摄标准测试图像时,y轴和x轴的旋转角都以一度为一个间隔进行调整。比如y轴旋转角为30度x轴旋转角为1度,y轴旋转角为30度x轴旋转角为2度,y轴旋转角为30度x轴旋转角为3度……以此类推得到其他的角度组合。每个组合拍摄一张标准测试图像,然后利用上面给出的方法计算出对应情况下的图像校正矩阵并存储到数据表中。这个矩阵数据可以用来校正y轴和x轴旋转角度相差一度以内的所有畸变图像。比如在y轴旋转角度为30度x轴旋转角度为0度时拍摄图像,并用其计算得到的对应的校正矩阵,之后所有在y轴旋转角度在[30,31)区间内并且x轴旋转角度在[0,1)区间内拍摄的图像都可以用该矩阵来进行畸变校正,且精度可以满足手机低头族步行安全防护应用的需求。这也就是本发明中提出的分段校正方法。这样做可以大大减少数据采集量,从而相应减少数据预处理、在线下载、手机存储的数据量,有利于在手机平台上的应用。

本发明步骤2包括:

以手机摄像头所在高度hd作为表索引即一级索引,每一个使用者特定的身高hu和臂长hf对应着一个拍摄高度hd,即对应一张特定数据表。表中每条记录存储手机坐标轴y轴和x轴的一个角度信息以及该角度信息下对应的校正矩阵数据,以y轴和x轴的旋转角度组合作为每条记录的索引,即二级索引或表内索引。

手机摄像头服务程序运行于后台,实时采集前进方向上路面的图像,并按照一定的频率(每秒两帧)将采集到的帧图像进行校正(为了提高运行效率不需要每一帧数据都进行校正识别处理,只需要按照一定间隔对帧数据处理即可。边看手机边步行速度一般较慢,每秒只处理两帧图像即可)。

在手机应用初次启动时,首先要求用户输入自己的身高和手前臂长度信息,然后应用程序根据给出的方法计算得到手机摄像头拍摄高度,再根据获得的拍摄高度信息从在线数据库中下载与此高度对应的所有校正矩阵数据到手机本地存储。应用程序运行时,根据实时采集到的角度信息确定并调用相应的校正矩阵对实时拍摄到的图像进行校正即可。

步骤3中,根据身高和臂长计算得到拍摄高度的方法为:为了确定手机摄像头的高度,在大量实验和调研的基础上发现:大部分使用者站立使用手机时,前臂的下段即手臂的弯曲点在腰部位置并以与地面成30度向上翘起。设使用者的身高为hu,腰部的高度为he=0.615*hu,前臂长度为hf,则手持手机时手机摄像头所在的高度即拍摄高度为hd,通过如下公式计算拍摄高度hd:

hd=he+sin(π/6)·hf

其中身高hu和前臂长度hf由使用者实际测量得到。应用开发时,依据不同的身高和臂长数据,结合上面给出的方法分别训练出对应的校正矩阵,并将这些数据存放在应用的在线数据库中,用户通过网络下载对应的所有校正矩阵数据。在应用中设置了一个人机交互的过程,在初次启动应用时使用者手动输入自己的身高hu和臂长hf,然后根据上式计算出拍摄高度hd,进而根据hd从应用的在线数据库中检索并下载对应的所有校正矩阵数据到手机本地。

本发明步骤4包括如下步骤:

步骤4-1,在手机应用初次启动或认为开启设置选项时,用户输入身高和手臂前臂长度等参数,然后应用根据此参数计算出对应的手机摄像头所在的高度hd,再根据高度hd从在线数据库中下载该高度对应的所有校正数据并存储于手机应用的本地存储空间。

手机的方向传感器分别采集到手机的y轴绕x轴旋转过的角度和x轴绕y轴旋转过的角度,平放在水平面上时这两个角度都为零,以特定的频率采集这两个角度的数据,获取手机摄像头的俯仰角信息;

传感器数据变化非常快,本发明是在实时采集到一帧图片后立即连续采集五次传感器数据(五个y轴角度和五个x轴角度,成对采集),以这五个数据的平均数作为最终的角度值,用其在已经下载到本地的数据表中索引出对应的校正矩阵。实时图像采集是每秒采集两次,采集后立即开始相应处理。

步骤4-2,对于手机实时拍摄的图像中的像素点i,根据如下公式进行坐标转换:

(xi’,yi’)=t(xi,yi),

其中,t即表示坐标转换关系,xi、yi分别表示手机实时拍摄的图像中像素点i的横坐标和纵坐标,xi’、yi’分别表示校正后图像中的像素点i的横坐标和纵坐标,所述坐标转换关系即上面的t通过如下公式实现:

x′i=klxi+k2yi+k3xiyi+k4

y′i=k5xi+k6yi+k7xiyi+k8

其中,参数k1~k8组成的矩阵k即为校正矩阵;

步骤4-3,根据步骤4-1获得的角度信息和拍摄高度在手机本地内存中查找对应的校正矩阵,得到参数k1~k8的值,完成坐标转换,得到一幅新的标准校正图像上各像素点坐标。

本发明所述数据库存储在手机应用的在线服务器上,在手机应用初次启动或认为开启设置选项时,用户输入身高和手臂前臂长度等参数,然后应用根据此参数计算出对应的手机摄像头所在的高度hd,再根据高度hd从在线数据库中下载该高度对应的所有校正矩阵数据并存储于手机应用的本地存储空间。

(1)本发明改进了畸变校正模型,解决两个方向同时存在梯形畸变的问题:由于本发明使用的算法中的校正矩阵是利用具有正方形特征的标准测试图像计算得到的,所以很容易准确地找到一个正方形轮廓畸变后的轮廓(如图8中的四边形abcd),这样就可以以此四边形轮廓的四个顶点作为畸变图像中的四个控制点,从而提出了一种新的梯形畸变校正模型。如图7所示,两个方向畸变同时存在时的畸变轮廓abcd和其对应的校正后的轮廓efc’d’。再根据上面给出的方法计算出校正矩阵,这样的校正矩阵便可以同时校正沿手机y轴和x轴两个方向上的畸变失真。此时efc’d’四点的坐标的计算方法如下:

(xe,ye)=(xc,ya);

(xf,yf)=(xd,ya);

(xc′,yc′)=(xc,yc);

(xd′,yd′)=(xd,yc);

(2)在(1)的基础上,本发明对算法又做了如下所述的改进,从而进一步有效地解决了宽长比失真问题:如图8所示,选择的abcd四点分别为一个正方形在畸变图像中的轮廓的四个顶点,通过如下的关系式计算出它们在校正后图像中对应的四个标准点efc’d’的坐标,此时可以保证efc’d’在图像中是个正方形,从而达到校正宽长比失真的目的。其中,a点坐标表示为(xa,ya),其余点坐标类似表示,cd边在图像中的水平长度为:l=xd–xc。此时efc’d’四点的坐标的计算方法如下:

(xe,ye)=(xc,yc-l);

(xf,yf)=(xd,yc-l);

(xc',yc')=(xc,yc);

(xd',yd')=(xd,yc);

本发明提供了一种基于手机平台的图像实时校正方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1