一种两视点立体图像合成方法及系统的制作方法_4

文档序号:9671168阅读:来源:国知局
整RANSAC中的阈值,就可以准确地估计出两图之间的映射关系,对SIFT的匹配点进行筛选,从而达到了去除错匹配点的作用。其中,RANSAC是由Fishier和Bolles提出的一种鲁棒性估计方法。其基本思想是:在进行参数估计时,不是不加区分地对待所有可能的输入数据,而是首先针对具体问题设计出一个搜索引擎,利用此搜索引擎迭代地剔除那些与所估计参数不一致的输入数据(Outliers),然后利用正确的输入数据来估计参数。其中,
[0091]坐标映射模关系的估计包括:从匹配点对集合S中随机选取一个数据点集本,并由这个子集初始化模型;找出按照阈值Td成为当前模型的支撑点集Si,集合Si就是样本的一致集,被定义为有效点;如果集合Si的大小超过了某个阈值T,用Si重新估计模型并结束;如果集合Si的大小小于阈值Ts,选取一个新的样本,重复上面的步骤。经过N次尝试,最大的一致集Si被选中,用它来重新估计模型,得到最后的结果。仅保留符合坐标映射模型的正确匹配点对,即Si中的点集,与得到的左右视图像素坐标映射模型一同保存为本帧图像参考信息。
[0092]循环执行上述对采集到的双视点图像进行匹配、合成处理的过程,仅保留最新采集到的4帧图像的图像参考信息,建立队列。每采集一帧立体素材,将队头帧信息删除,将最新帧参考信息存入队尾。
[0093]完成左右视图预处理和匹配后,将左右视图像素点通过特定的像素排列方式,如图3所示,生成一帧可在光栅下显示的立体图像数据,以实现立体图像的合成处理。其中,特定的像素排列方式为:以纵向列为单位,合成图的第一列排布左视图的第一列像素,合成图的第二列排布右视图的第一列像素;合成图的第三列排布左视图第二列像素,合成图的第四列排布右视图第二列像素……以此类推,周而复始直至左右视图像素完全排布进入合成图中。排列形式特殊之处在于,合成后的图像横向像素数量是原图像的2倍。
[0094]进一步地,上述循环执行完成后,采用当前模型队列前三帧求解平均像素坐标映射模型,验证左右视图是否遮挡。将左右视图各自平均切分为8块,对每一块取平均灰度值,对左右视图相应区块的平均灰度值进行对比,若区块平均灰度值相对差异在10%以上,则将低灰度值区块视为破损区块,若破损区块数为0,表示无遮挡,则进行噪声处理。
[0095]如果若破损区块数不为0,表示有遮挡,本步骤还包括:修复遮挡区域,即对某一视图中被异物遮挡的区域用另一视图对应像素点的灰度值修正,以确保移动终端在摄像头被遮挡的情况下,仍能够获得质量相对较高的左右视图素材,解决了现有技术中立体素材质量一般、合成处理效率不高的问题。破损复包括:精确确定破损区域,在破损区块中,利用Sobel算子检测灰度突变边缘;采用当前场景左右视图的坐标映射模型确定破损区域在另一视图中坐标信息;采用正常视图中相应区域图像内容替换当前破损区域图像内容;进行边缘修复,对于利用Sobel算子检测到的灰度突变边缘,利用左右两视图对应像素点灰度值的平均数修正每像素点3X3临域内各像素灰度值。这里,对于已经匹配好的左右视图,若某一区块平均灰度值相对差异在10%以上,则灰度值较低的那块视图区块被标记为破损区块。由于左右视图已完成匹配,此处,可用灰度值较高的那块视图区块(即上面提到的另一视图)代替灰度值较低的区块(即上面提到的某一视图中被异物遮挡的区域),以实现破损修复。
[0096]在进行遮挡区域修复之后,由于坐标映射模型的局限性,会伴随有少量椒盐噪声,因此,本步骤还包括:利用中值滤波器检测左右视图的噪声,并对噪声点加以标注。即在当前点NXN临域内(N为奇数),取灰度的最大值、最小值和均值,如果当前点的灰度值是这个临域内的最大或最小值,且超过预先设置的阈值,则有可能为噪点,标记为可疑点。其中阈值为实验中的经验值,一般可以取整幅图像的平均灰度值。此时,通过坐标映射模型确定可疑点在另一视图中位置区域,将当前点置于此位置中,再次进行灰度比较,进而确定当前点是否为噪声点;
[0097]对于确定为噪声的点进行噪声点修复,可以采用另一视点对应像素点的灰度值修正确认出的噪声点3X3临域内各像素灰度值。与现有其他除噪方法(现有的其他除噪方法大多是将出现噪声的图像整体进行滤波处理,容易影响图像质量)相比较,本发明中的噪声修复方法更简单、计算量更小,去噪效果更显著,对合成后的立体图像观感影响更小。
[0098]步骤202:通过狭缝光栅前置LED立体显示器实现对两视点立体图像的裸眼显示。
[0099]本步骤中,硬件抽象层系统库通过回调函数,向照相机子系统的服务端发送预览消息。服务端收到该消息后调用ISurface系统库完成对预览显示缓存区的数据填充工作。以安卓操作系统为例,包括:在安卓操作系统应用程序层通过2个Camera对象实例及其关联的Surface预览控件,分别实现了应用程序框架层中的Android.Hardware.Camera类提供给上层应用的预览相关接口,将立体图像从安卓系统的硬件抽象层提出上来,交由安卓系统的ISurface系统库来完成数据逻辑处理,最后显示到预览界面上。
[0100]由于本方法采用了前置适配光栅的LED立体显示器,传送至应用层的立体图像数据将按照原图像素等比例的方式投映到2D显示屏上。与同类产品相比,本发明所提出的技术方案数据处理量小,硬件成本较低且易于制作。
[0101]对应特定的2D显示屏像素大小及观看条件,为使观看者的左右眼透过光栅能观看到相应的立体视差图像,就必须精确设计狭缝光栅透光条和挡光条的宽度、2D显示屏与狭缝光栅之间的距离等结构参数。对于给定的2D显示屏,其显示条件为:视差图像数(视点数)为K,2D显示屏子像素宽度为Wp。观看条件为:最佳观看距离为L,相领视差图像的视点间距为Q,其取值可等于或小于两眼瞳孔间距。一般而言,可设Q = E/N,其中E为人眼瞳孔间距,N为自然数,此时,在最佳观看距离上,若左眼看到第i幅视差图像,则右眼看到的是第(i+N)幅视差图像。当N= 1时,相邻视差图像的视点间距即为人眼瞳孔间距。狭缝光栅参数为:光栅节距1,其中,透光条与挡光条宽度分别为胃?和Wb,2D显示屏与狭缝光栅的距离为D。
[0102]本发明方法中,通过线程Loop循环机制,硬件抽象层系统库不断循环步骤201所述的对采集到的双视点图像进行匹配、合成处理的过程,将两个摄像头硬件设备采集的图像数据帧匹配、合成、送到预览显示缓冲区,最后显示到应用程序界面上。
[0103]需要说明的是,对于单帧拍照功能,按照上述步骤即可实现两视点立体图像的裸眼显示;对于视频录制功能,在步骤201的立体图像合成处理之后,将数据格式再转换为YUV格式,以便于存储,再将图像数据传递给安卓系统的视频录像机子系统(VideoRecorder)进行编码处理;之后再执行步骤202。
[0104]图4为本发明两视点立体图像合成系统的组成结构示意图,如图4所示,至少包括采集单元、处理单元,以及显示单元;其中,
[0105]采集单元,用于利用双MIPI接口采集双视点图像。具体地,
[0106]采集单元至少包括两路具有MIPI接口的后置摄像头即图4中的第一摄像像头和第二摄像头,分别用于采集左右两路视图。两路摄像头为在水平方向排列两个光学特性、几何特性、成像特性几乎一致的两个摄像头,摄像头之间的距离可以为35_。两路摄像头分别挂载在不同的1?总线上,采用独立的数据线路与内存和中央处理器交互,并利用每一帧图像的时间戳进行巾贞同步。其中,摄像头芯片可以选择Omnivis1n公司的0V5640芯片。
[0107]进一步地,采集单元还包括摄像头驱动模块,用于对采集到的两路视图进行驱动处理后输出给处理单元。摄像头驱动模块可以采用V4L2视频驱动框架来实现。
[0108]处理单元,用于对采集到的双视点图像进行匹配、合成处理,生成两视点立体图像数据并输出给显示单元。处理单元可采用德州仪器公司的0MAP4系列处理器芯片来实现。具体地,
[0109]处理单元至少包括预处理模块、提取模块、匹配模块,合成模块;其中,
[0110]预处理模块,用于在内存中注册用于照相机预览显示
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1