一种基于一维集成成像系统的阵列图生成及填补方法与流程

文档序号:18471859发布日期:2019-08-20 20:23阅读:343来源:国知局
一种基于一维集成成像系统的阵列图生成及填补方法与流程

本发明属裸眼3d显示技术领域,具体涉及一种基于一维集成成像系统的阵列图生成及填补方法。



背景技术:

1908年,诺贝尔奖获得者lippmann首先提出了集成成像。它是一种利用微透镜阵列记录和再现三维空间场景的立体显示技术。集成成像具有连续视点、全视差、无视疲劳以及无需辅助设备等优点从而受到各国的广泛关注。但是,集成成像本身也存在一些缺点与不足。集成成像造价高昂,不适用于大屏幕显示,并且对屏幕分辨率的要求更高,对存储空间及数据处理能力都有较高要求。一维集成成像在一定程度上解决了上述问题。一维集成成像舍弃了集成成像的垂直立体感,只在水平方向上有立体感,大大减少了数据量,增加了对屏幕分辨率的利用率。故而一维集成成像技术可以较快的处理速度在集成成像的实现方法之中脱颖而出。

但目前,基于一维集成成像的立体片源并不常见。若要生成适合一维集成成像的立体片源,就需要进行空洞填补。criminisi算法是目前常用的图像修复算法。该修复算法的算法复杂度与图片大小与像素块大小有关,图片越大,该算法运行时间越长;单位像素块越小,该算法运行时间越长,但修复越细致,修复效果越好。在实践中发现该算法能较好地对位于图像边缘的空洞进行修复且花费时间少,而在对图片内部的大块空洞区域修补时,修复时间长,且修复效果欠佳。

由于以上算法的缺陷,在实际应用中很难取得理想的效果,有待改进。



技术实现要素:

为解决以上算法的缺陷,本发明旨在提供一种criminisi算法与光流法相结合的空洞填补算法,结合光流法与criminisi算法与光流法的优势,最大限度的提高空洞填补的准确率和效率。

本发明的基于一维集成成像系统的阵列图生成及填补方法,包括下列步骤:

1.1设原图像为ioriginal-k,深度图为hk,生成的带有空洞的视点图为wk-r,

其中:k表示视频中第k帧图像;r表示第r个视点,r的取值范围是1~2*n,n为半视点数;

1.1.1根据所需要的深度效果,预设人眼能感受到的出屏深度和入屏深度,由几何光学得到:

m/b=p/(p+d)

其中:b为双眼间距;m为视差,表示左右眼像之间的水平距离;p为人眼能感受到的景物深度;d为观察者与屏幕之间的距离;

之后,将人眼能感受到的景物深度p进行单位变换,由毫米变成像素:经单位转换后的最大正视差,该视差将产生入屏效果:maxpm=maxm*(a/a);经单位转换后的最大负视差,该视差将导致出屏效果:

maxnm=-abs(maxm)*(a/a)

其中:abs(maxm)=maxp*b/(d-maxp);a为屏幕的水平分辨率;a为屏幕的水平宽度;

1.1.2将深度值均匀量化到人眼能感受到的景物深度上,将其转化为视差值,转换公式为:

d(i,j)=(maxnm-maxpm)/255*h(i,j)+maxpm

其中:d(i,j)为坐标(i,j)点所对应的视差值;h(i,j)为点(i,j)所对应的深度值;

由此可知,当深度值为0时,对应正视差maxpm;当深度值为255时,对应负视差maxnm;

1.1.3对原视频图像中的每个像素点根据视差值进行平移,即可获取任意视点图像:

in-x+1(i,j-d(i,j)*x/2n)=ioriginal-k(i,j)、in+x(i,j+d(i,j)*x/2n)=ioriginal-k(i,j)

将视点按照相对原图像从左至右的方向编号,视点总数为2*n个,该视点图像为第x个视点图像;

1.2统计在图wk-r中,由ioriginal-k映射到wk-r(i,j)的点的个数(n)和它们的坐标ioriginal-k(x1,y1)、ioriginal-k(x2,y2)、...ioriginal-k(xn,yn);

当n=0时,令wk-r(i,j)=0,即为空洞点;

当n=1时,令wk-r(i,j)=ioriginial-k(x,y);

当n=2时,令

当n>2时,取ioriginal-k(x1,y1)、ioriginal-k(x2,y2)、...ioriginal-k(xn,yn)中的深度的最大值horiginal-k(i,j),令wk-r(i,j)=ioriginal-k(xp,yp)(1≤p≤n);

1.3将n=0的点,即空洞点的像素值设为0,其它为255,得到maskk-r图像;maskk-r图像将直观地反映出wk-r图像中空洞的分布情况;

1.4.利用光流法对初步生成的视点图进行空洞填补包括下列步骤:

1.4.1提取出图像maskk-r内部大面积空洞的边缘,设第i行空洞的边缘点分别为(i,a)和(i,b),设a<b,设参考帧图片为原视频中的第三帧,即图像ioriginal-3,利用lk光流法即稀疏光流法对wk-r和图ioriginal-3进行计算,得到每个像素点在水平和垂直两个方向上的运动速度,分别为ofv和ofh;

1.4.2将(i,a)左侧与(i,b)右侧的深度值进行比较,若(i,a)左侧的深度值小,则说明其与观察者的距离更远,是图像的背景部分;

1.4.3估算空洞部分的光流值,取(i,a)左侧7个像素的水平运动速度与垂直运动速度,求其平均值,作为该行空洞的水平运动速度和垂直运动速度,即:

1.4.4设对应像素点的位移为δx、δy,当a<j<b时,空洞处的水平位移为:δx=ofh(i,j)×10,竖直位移为:δy=ofv(i,j)×10,求得空洞处在ioriginal-3的映射块:wk-r(i,j)=ioriginal-3(i+δx,j+δy);

1.5利用criminisi图像修复算法处理图像包括下列步骤:

1.5.1用criminisi图像修复算法处理wk-r图像,由于原图像大小为436*1024像素,根据原图像大小设定criminisi图像修复算法中的单位像素块为半径为12--20像素的单位块。

本发明采用一种光流法与criminisi图像修复算法结合的方式来填补空洞。首先,根据几何光学及dibr的思想,利用深度图模拟了任意位置的视点图像。在该过程中,对映射到视点图上的点进行了分类,使生成的视点图更加准确。其次,在进行空洞填补时,先利用光流法对图像内部大块空洞进行填充。提取出空洞边缘,比较边缘两侧的深度值,取较大一侧的光流值估测空洞部分的光流值,从而计算出空洞部分在参考帧上的映射块。最后,再用criminisi图像修复算法对其他空洞进行填补。

本发明结合光流法与criminisi图像修复算法这两种算法的优势对图像进行填补,既参考了视频中不同帧的图像信息,又提高了criminisi图像修复算法的运算速度,比起只用criminisi图像修复算法进行空洞填补,在相同参数的设置下,本发明平均节省时间45.448%,且填补效果更佳。

表1原criminisi图像修复算法与本发明方法用时比较

附图说明

图1为基于一维集成成像系统的阵列图生成及填补方法的流程图

图2为生成的带有空洞的初步视点图

图3为由光流法处理后的视点图

图4为由criminisi算法处理后的视点图

图5为仅由criminisi算法处理后的视点图

具体实施方式

本发明的核心内容在于:在进行空洞填补时,利用视频中的光流信息,事先填补图像中央部分的大面积空洞,再利用criminisi图像修复算法进行空洞填补。相比于criminisi图像修复算法,该方法平均节省45.448%的时间,且修复效果更好。如图4、图5所示。

为使本发明的目的,技术方案和优点更加清楚,下面结合附图及实例做进一步的详细叙述:

一种基于一维集成成像系统的阵列图生成及填补方法,如图1,包括下列步骤:

1.3设原图像为ioriginal-k,深度图为hk,生成的带有空洞的视点图为wk-r,

其中:k表示视频中第k帧图像;r表示第r个视点,r的取值范围是1~2*n,n为半视

点数;

1.1.1根据所需要的深度效果,预设人眼能感受到的出屏深度和入屏深度,由几何光学得到:

m/b=p/(p+d)

其中:b为双眼间距;m为视差,表示左右眼像之间的水平距离;p为人眼能感受到的景物深度;d为观察者与屏幕之间的距离;

之后,将人眼能感受到的景物深度p进行单位变换,由毫米变成像素:经单位转换后的最大正视差,该视差将产生入屏效果:maxpm=maxm*(a/a);经单位转换后的最大负视差,该视差将导致出屏效果:

maxnm=-abs(maxm)*(a/a)

其中:abs(maxm)=maxp*b/(d-maxp);a为屏幕的水平分辨率;a为屏幕的水平宽度;

1.1.2将深度值均匀量化到人眼能感受到的景物深度上,将其转化为视差值,转换公式为:

d(i,j)=(maxnm-maxpm)/255*h(i,j)+maxpm

其中:d(i,j)为坐标(i,j)点所对应的视差值;h(i,j)为点(i,j)所对应的深度值;

由此可知,当深度值为0时,对应正视差maxpm;当深度值为255时,对应负视差maxnm;

1.1.3对原视频图像中的每个像素点根据视差值进行平移,即可获取任意视点图像:

in-x+1(i,j-d(i,j)*x/2n)=ioriginal-k(i,j)、in+x(i,j+d(i,j)*x/2n)=ioriginal-k(i,j)

将视点按照相对原图像从左至右的方向编号,视点总数为2*n个,该视点图像为第x个视点图像;

1.4统计在图wk-r中,由ioriginal-k映射到wk-r(i,j)的点的个数(n)和它们的坐标ioriginal-k(x1,y1)、ioriginal-k(x2,y2)、...ioriginal-k(xn,yn);

当n=0时,令wk-r(i,j)=0,即为空洞点;

当n=1时,令wk-r(i,j)=ioriginial-k(x,y);

当n=2时,令

当n>2时,取ioriginal-k(x1,y1)、ioriginal-k(x2,y2)、...ioriginal-k(xn,yn)中的深度的最大值horiginal-k(i,j),令wk-r(i,j)=ioriginal-k(xp,yp)(1≤p≤n);

1.3将n=0的点,即空洞点的像素值设为0,其它为255,得到maskk-r图像;maskk-r图像将直观地反映出wk-r图像中空洞的分布情况;

2.1利用光流法对初步生成的视点图进行空洞填补包括下列步骤:

2.1.1提取出图像maskk-r内部大面积空洞的边缘,设第i行空洞的边缘点分别为(i,a)和(i,b),不妨设a<b,设参考帧图片为原视频中的第三帧,即图像ioriginal-3,利用lk光流法即稀疏光流法对wk-r和图ioriginal-3进行计算,得到每个像素点在水平和垂直两个方向上的运动速度,分别为ofv和ofh;

2.1.2将(i,a)左侧与(i,b)右侧的深度值进行比较,若(i,a)左侧的深度值小,则说明其距离观察者更远,是图像的背景部分;

2.1.3估算空洞部分的光流值,取(i,a)左侧7个像素的水平运动速度与垂直运动速度,求其平均值,作为该行空洞的水平运动速度和垂直运动速度,即:

2.1.4设对应像素点的位移为δx、δy,当a<j<b时,空洞处的水平位移为:δx=ofh(i,j)×10,竖直位移为:δy=ofv(i,j)×10,求得空洞处在ioriginal-3的映射块:wk-r(i,j)=ioriginal-3(i+δx,j+δy);

3.1利用criminisi图像修复算法处理图像包括下列步骤:

3.1.1用criminisi修复算法处理wk-r图像。由于本发明中原图像大小为436*1024像素,根据原图像大小设定criminisi图像修复算法中的单位像素块为半径为12--20像素的单位块。

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