CN109922267A - 基于陀螺仪数据的图像防抖处理方法、计算机装置及计算机可读存储介质 - Google Patents
基于陀螺仪数据的图像防抖处理方法、计算机装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109922267A CN109922267A CN201910257198.4A CN201910257198A CN109922267A CN 109922267 A CN109922267 A CN 109922267A CN 201910257198 A CN201910257198 A CN 201910257198A CN 109922267 A CN109922267 A CN 109922267A
- Authority
- CN
- China
- Prior art keywords
- image
- spin matrix
- interframe
- current frame
- gyro data
- 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
Links
Landscapes
- Studio Devices (AREA)
Abstract
本发明提供一种基于陀螺仪数据的图像防抖处理方法、计算机装置及计算机可读存储介质,该方法包括获取陀螺仪数据以及图像数据,计算当前帧图像相对于基准图像的帧间旋转矩阵;对帧间旋转矩阵进行滤波,生成新旋转矩阵;获取当前帧图像的像素点初始坐标值,应用新旋转矩阵计算对应像素点的输出坐标值;其中,计算当前帧图像相对于基准图像的帧间旋转矩阵包括:计算当前帧图像与基准图像之间每相邻两帧图像之间的相邻帧间旋转矩阵,将多个相邻帧间旋转矩阵相乘生成帧间旋转矩阵。本发明还提供实现上述方法的计算机装置及计算机可读存储介质。本发明的计算量少,对芯片的要求较低,满足低成本的录像设备使用的要求。
Description
技术领域
本发明涉及图像数据的处理领域,具体地,是基于陀螺仪数据的图像防抖处理方法以及实现这种方法的计算机装置、计算机可读存储介质。
背景技术
随着智能手机、平板电脑或者手持式DV机的普及,人们越来越多的使用这些手持录像设备进行视频的拍摄,通常,手持录像设备设置有一个显示屏,当人们录制视频时,能够在显示屏上实时显示所拍摄的视频画面。
由于使用者在握持手持录像设备时,难免出现手部抖动或者在移动过程中拍摄视频,这样将导致手持录像设备振动,因此,一旦手持录像设备在视频拍摄过程中出现振动的情况,在显示屏上输出的视频画面会随着手持录像设备自身的振动而抖动,严重影响观看感受,因此对手持录像设备拍摄的视频图像进行防抖处理显得尤为重要。
目前普遍使用的防抖处理技术主要有两类,一类是基于陀螺仪数据计算后调整镜头位移的光学防抖技术,这种技术需要用到高端的镜头模组,例如需要使用高规格可移动镜片的镜头模组,使用成本较高,不适用于低成本的手持录像设备;第二类是基于图像特征点提取和运动估计的数字防抖方案,这种方案需要提取大量的数据,且相关的图像处理运算复杂繁琐,导致手持录像设备的CPU计算量非常大,难以满足高分辨率高帧率的视频防抖需求,并且,这种方案还存在特征点匹配失败的风险,对画面中的大面积移动物体容易出现误判,导致防抖处理的稳定性不高,最终影响视频防抖处理的效果。
而现有的一些防抖处理方案是获取陀螺仪的数据,根据陀螺仪的数据计算每一帧图像对应的旋转角度,再使用该旋转角度对每一帧图像进行防抖校正计算。但这种方法往往是对每一帧图像的旋转角度进行累加来计算当前帧图像对应的旋转角度,这样就涉及大量的三角函数的运算,如果使用软件实现这些计算,将导致CPU的运算量过大而影响图像处理速度,如果使用硬件实现这些计算,将导致芯片的设计面积增大,且运算效率也不如矩阵计算高。
发明内容
本发明的主要目的是提供一种CPU运算量小且防抖处理效果好的基于陀螺仪数据的图像防抖处理方法。
本发明的另一目的是提供一种实现上述基于陀螺仪数据的图像防抖处理方法的计算机装置。
本发明的再一目的是提供一种实现上述基于陀螺仪数据的图像防抖处理方法的计算机可读存储介质。
为实现本发明的主要目的,本发明提供的基于陀螺仪数据的图像防抖处理方法包括获取陀螺仪数据以及图像数据,计算当前帧图像相对于基准图像的帧间旋转矩阵;对帧间旋转矩阵进行滤波,生成新旋转矩阵;获取当前帧图像的像素点初始坐标值,应用新旋转矩阵计算对应像素点的输出坐标值;其中,计算当前帧图像相对于基准图像的帧间旋转矩阵包括:计算当前帧图像与基准图像之间每相邻两帧图像之间的相邻帧间旋转矩阵,将多个相邻帧间旋转矩阵相乘生成帧间旋转矩阵。
由上述方案可见,获取陀螺仪数据以后,将陀螺仪的旋转角度转换成旋转矩阵后,当计算某一帧图像与基准图像之间的帧间旋转矩阵时,是使用多个相邻帧间旋转矩阵累乘的方式计算,而不是直接使用旋转角累加的方式计算,这样可以避免计算大量的三角函数,从而减少CPU的计算开销。此外,生成帧间旋转矩阵后,还对帧间旋转矩阵进行滤波,也就是实现帧间平滑滤波,使得输出的图像的防抖效果更好。
一个优选的方案是,基准图像为包含连续多帧图像的视频图像的首帧图像。
由此可见,以首帧图像作为基准图像,可以确保后续计算的每一帧图像都是以首帧图像为基准,可以确保输出的视频信号的稳定性以及连续性。
一个可选的方案是,计算当前帧图像相对于基准图像的帧间旋转矩阵前,判断所获取的陀螺仪数据或者图像数据是否满足预设条件,如是,则使用当前帧图像前预设帧图像作为基准图像。
可见,在手持录像设备短时间内出现大角度旋转或者剧烈振动的情况下,如果仍使用首帧图像作为基准图像,则可能出现失真的情况,因此这种情况下对基准图像进行更新,例如以上一帧图像作为基准图像,从而确保输出视频的真实性。
进一步的方案是,预设条件至少包括以下的任一项:视频数据的累计图像帧数大于预设帧数阈值;或者陀螺仪数据中一个旋转角度方向的变动频率低于预设频率阈值;或者陀螺仪数据中一个加速度方向预设时间内位移超过预设位移阈值。
由此可见,当出现上述三种情况任意一种时,表明手持录像设备可能已经出现大角度转动或者振动,因此需要更新基准图像。
更进一步的方案是,对帧间旋转矩阵进行滤波后,还执行:判断录像装置是否为预设类型的录像装置,如是,计算当前帧图像非首行像素与首行像素之间的旋转角度,并生成帧内旋转矩阵;应用新旋转矩阵计算对应像素点的输出坐标值包括:应用新旋转矩阵以及帧内旋转矩阵计算对应像素点的输出坐标值。
可见,对于使用卷帘快门的录像设备而言,由于同一帧图像的不同行数据之间必定存在曝光时间的差异,因此,需要对不同行数据之间进行旋转角度的校正,也就是生成一个帧内旋转角度,并且使用帧内旋转角度对向上的输出坐标值进行计算,从而提高防抖处理的效果。
更进一步的方案是,获取当前帧图像的像素点初始坐标值,应用新旋转矩阵计算对应像素点的输出坐标值包括:对当前帧图像的原始图像进行裁剪,获取裁剪后的当前帧图像的像素点初始坐标值并计算该像素点对应的输出坐标值。
由于经过防抖处理后的图像的像素点的坐标值可能超出原始图像的边界,因此需要对原始图像进行裁剪,这样可以有效避免输出后的像素点的坐标值超出原始图像边界的情况发生。
更进一步的方案是,计算对应像素点的输出坐标值后,还判断输出坐标值是否超出当前帧图像的原始图像的边界,如是,对新旋转矩阵进行滤波,并使用滤波后的新旋转矩阵重新计算像素点的输出坐标值。
由此可见,如果输出的像素点的坐标值超过原始图像的边界,则对新旋转矩阵进行再次滤波,并且重新计算像素点的输出坐标值,可以减小像素点的输出坐标值超出原始图像边界的情况发生。
更进一步的方案是,对新旋转矩阵经过预设次数的滤波后,如计算的像素点的输出坐标值仍超出原始图像的边界,则以原始图像作为当前帧图像的输出图像。
多次对新旋转矩阵进行滤波后,像素点的输出坐标值仍超出原始图像的边界,如果继续进行滤波处理,不但增加CPU的计算量,而且还会影响图像防抖处理的效率,并影响视频画面输出的速度,因此在多次滤波后仍出现像素点的输出坐标值超出原始图像边界的情况,可以直接输出原始的图像,这样可以避免输出的视频出现卡顿的现象。
为实现上是的另一目的,本发明提供的计算机装置包括处理器以及存储器,存储器存储有计算机程序,计算机程序被处理器执行时实现上述基于陀螺仪数据的图像防抖处理方法的各个步骤。
为实现上是的再一目的,本发明提供计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述基于陀螺仪数据的图像防抖处理方法的各个步骤。
附图说明
图1是应用本发明基于陀螺仪数据的图像防抖处理方法实施例的流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明的基于陀螺仪数据的图像防抖处理方法应用在录像设备上,例如,可以是智能手机、平板电脑、手持DV等手持录像设备上,还可以应用在行车记录仪等设备上,甚至可以应用在无人机、扫地机器人的录像设备上,这些录像设备在使用过程中可能出现短时间内大幅度移动或者振动的情况。进一步的,该录像设备设置有处理器以及存储器,存储器上存储有计算机程序,处理器通过执行该计算机程序实现基于陀螺仪数据的图像防抖处理方法。
基于陀螺仪数据的图像防抖处理方法实施例:
应用本实施例的录像设备内需要设置一个陀螺仪,优选的,该陀螺仪每间隔一个固定的时间采集一组数据。另外,录像设备设置有CMOS传感器或者CCD传感器,用于每间隔一段时间采集一帧图像。下面结合图1,介绍本实施例的具体流程。
首先,执行步骤S1,获取陀螺仪数据以及多帧图像数据。由于录像设备工作时,陀螺仪每隔固定的时间dt将输出一组包含三轴角速度以及时间戳的数据,例如,陀螺仪所采集的一组数据可以表示为[gt,vx,vy,vz],其中gt表示这组数据采集的时间戳,vx、vy、vz分别表示在该时刻下绕三个坐标轴旋转角速度分量。因此,步骤S1是持续的采集陀螺仪输出的数据,也就是采集陀螺仪所输出的多组数据。
由于录像设备的传感器是以固定帧率采集视频帧,本实施例中,一个视频帧就是一张图像数据,或者称为一帧图像,将多帧连续的图像连续播放将形成一段视频。通常,由于传感器的采集视频帧的频率低于陀螺仪的输出数据的频率,因此,两个相邻的视频帧之间会包含多组陀螺仪数据。本实施例中,陀螺仪与传感器以刚性连接,两者坐标轴重合,使用前需经过时间戳校准。
在采集陀螺仪数据以及多帧图像数据后,计算相邻两帧图像之间的旋转角度。首先,获取相邻两帧图像首行像素的曝光时间ft1和ft2,再查找满足ft1<gt<ft2的陀螺仪数据,通常能够查找出多组满足要求的陀螺仪数据。然后,对查找出来的多组陀螺仪数据的角速度分别做积分,假设传感器在这段时间内的旋转角定义为:
其中gti和gtj分别是最接近ft1和ft2的陀螺仪时间戳。对于视频首帧,默认其旋转角为0。
在对陀螺仪数据进行处理的同时,可以将所接收的多帧图像数据缓存到一个缓存器中,例如图像缓存器Image Buffer中,图像数据的缓存的数量与帧间旋转矩阵的滤波半径有关。下面将详细描述对帧间旋转矩阵的滤波操作,本实施例的滤波半径是指滤波操作时所需要使用的视频帧的数量,滤波半径越大,所使用的视频帧的数量越多,滤波半径越小,所使用的视频帧的数量越少。
然后,执行步骤S2,计算当前帧图像的帧间旋转矩阵。对一组旋转角先做归一化处理,再进行罗德里格斯变换,具体变换公式如下:
R=E+sinθ*T+(1-cosθ)*T2 (式2)
式2中,旋转角分量使用弧度制,矩阵T为中间矩阵变量,E为3×3单位矩阵,R为转换得到的帧间旋转矩阵。由于上述的帧间旋转矩阵是利用相邻两帧图像的旋转角计算得到,因此,上述的帧间旋转矩阵实际上是相邻帧间旋转矩阵,即当前帧图像与上一帧图像之间的旋转角度对应的帧间旋转矩阵。
由于视频拍摄过程中将形成大量的视频帧,为了确保后续每一帧防抖处理都是基于相同的基础,通常需要设定一张基准图像,例如视频的首帧图像,后续的每一帧图像都以该基准图像为基础计算旋转角度,也就是计算后续的每一帧图像相对于基准图像之间的旋转角度,由此形成当前帧的帧间旋转矩阵。
如果当前帧是视频的第二帧,则当前帧相对于基准图像的帧间旋转矩阵实际上就是相邻帧间旋转矩阵。但对于后续的视频帧,如第三帧、第四帧图像,对应的帧间旋转矩阵则是前面多帧图像以及当前帧图像对应的相邻帧间旋转矩阵累乘获得的结果。因此,本实施例通过多帧图像对应的相邻帧间旋转矩阵相乘的方式,等效于帧间旋转角的相加。也就是,陀螺仪每隔一个视频帧的时间内获取的帧间旋转角都可转换成相应的相邻帧间旋转矩阵,并进行不断的矩阵累乘,从而生成当前帧相对于基准图像的帧间旋转矩阵。
可选的,考虑到某些场景中,录像设备可能进行大幅度的位移和转向,例如用户握持录像设备时短时间内大幅度转动,或者行车记录仪因车辆颠簸而出现剧烈的振动等,都有可能导致输出到显示屏上的视频出现剧烈的抖动。为了解决这一问题,本实施例中,可以对基准图像进行调整,即不采用视频的首帧图像作为基准图像,而是采用当前帧图像前的某一帧图像作为基准图像,如使用当前帧图像的上一帧图像作为基准图像,或者使用预设数量的若干帧图像作为基准图像,如使用当前帧图像前三帧图像作为基准图像。
当然,对基准图像进行更新需要满足一定的条件,例如累计录像帧数超过预设帧数阈值,例如累计录像帧数超过60帧,或者陀螺仪数据中一个旋转角度方向的变动频率低于预设频率阈值;或者陀螺仪数据中一个加速度方向预设时间内位移超过预设位移阈值。在出现上述三个条件的任一个条件时,需要更新基准图像。当然,也可以是满足上述条件的任意两个,或者同时满足三个条件是才更新基准图像。
假设世界坐标系中任意一个点的三维坐标为Corworld[cxw,cyw,czw],其映射在图像上的三维坐标为Corpic3D[cxp3D,cyp3D,czp3D],再对该三维坐标做齐次化操作,可得到该点实际在平面图像中的二维像素坐标Corpic2D[cxp2D,cyp2D],具体的计算公式如下:
Corpic3D=K*A*R*Corworld
cxp2D=cxp3D/czp3D
cyp2D=cyp3D/czp3D (式3)
式3中,K是录像设备内参矩阵,该参数在录像设备出厂时已经设定,也可自行事先测试标定。A是陀螺仪坐标系和相机坐标系的坐标轴对换矩阵,该矩阵由螺仪和摄像头安装在录像设备中的相对位置关系而定,因此可以经过测试确定。R是经旋转角转换而来的帧间旋转矩阵,即式2所计算的帧间旋转矩阵。
接着,执行步骤S3,对当前帧图像的帧间旋转矩阵进行滤波,生成新旋转矩阵。本实施例中,对帧间旋转矩阵进行滤波前,需要确定滤波半径Radius,滤波半径的选取可以根据应用场景中录像设备的振动幅度与振动频率,并兼顾设备自身可承受的计算复杂度而确定,例如可以将滤波半径确定为当前帧所需的相邻前后帧的帧间旋转矩阵数量。本实施例中,需要设定两个缓存器,分别缓存当前帧图像相邻前后多帧图像的帧间旋转矩阵以及后面多帧的图像数据,其中缓存的数量由滤波半径决定,例如滤波半径为2,则需要缓存前后各2帧的帧间旋转矩阵以及后面2帧的图像数据,此处所缓存的帧间旋转矩阵是未经滤波的帧间旋转矩阵。本实施例中,帧间旋转矩阵经过滤波后,被称为新旋转矩阵。
假定当前帧图像为已采集视频中的第i帧图像,其对应的帧间旋转矩阵记为Rold(i),本实施例将使用滤波权重系数c来计算当前帧图像的新旋转矩阵。例如,滤波权重系数c为多个并且可以预先设定,滤波权重系数c的数量为滤波半径的2倍多1个,本实施例将其记为c0、c1、c2…c2*Radius。
当前帧的新旋转矩阵Rnew(i)可以通过以下公式计算得到:
Rnew(i)=c0*Rold(i-Radius)+c1*Rold(i-Radius+1)+...+cRadius*Rold(i)+...+c2*Radius-1*Rold(i+Radius-1)+c2*Radius*Rold(i+Radius) (式4)
然后,执行步骤S4,判断当前录像设备是否为预设类型的录像设备。由于一般录像设备普遍配备的是卷帘快门,传感器采集的同一帧图像中,每行像素虽然曝光时长依然一致,但不同行之间的像素的开始曝光时间的时刻是存在一定的差异,例如相邻两行之间的像素点的开始曝光的时间点会存在固定的时延toff,因此,式4计算生成的新旋转矩阵只适用于这种录像设备一帧图像的第0行像素,即首行的像素,对于非首行的像素,则必定存在旋转角度的偏移,因此,需要对非首行像素进行帧内旋转矩阵的计算,从而减小输出图像内部的像素坐标偏移误差。
但对于使用全局快门的高成本录像设备,则不存在这一问题,因此,步骤S4需要判断当前录像设备是否为预设类型的录像设备,例如获取录像设备的配置信息,确定当前录像设备的类型,如果不是预设类型的录像设备,则执行步骤S5,应用新旋转矩阵计算像素点的输出坐标值。
具体的,对于从传感器采集得到的原始视频的第i帧图像,假设任意一个平面二维像素点坐标为Corold_pic2D[cxop2D,cyop2D],将其扩展为三维齐次坐标Corold pic3D[cxop2D,cyop2D,1],再经过以下的逆运算:
cxnp2D=cxnp3D/cznp3D
cynp2D=cynp3D/cznp3D (式5)
其中,Cornew_pic2D[cxnp2D,cynp2D]即是该像素点经防抖滤波后输出的相对于原始图像的新坐标,也就是该像素点的输出坐标值。
如果步骤S4的判断结果为是,表示当前录像设备是预设类型的录像设备,则需要计算当前行像素的帧内旋转矩阵。首先,执行步骤S6,获取当前帧图像首行像素与非首行像素之间的旋转角度,然后执行步骤S7,根据该旋转角度生成帧内旋转矩阵。
假设当前行像素是当前帧图像在曝光顺序上的第j行像素,相对于第0行像素的总时延为Tj=j*toff,假定这段时间内陀螺仪输出了n组数据,则可以算出这段时间内的帧内旋转角Anglej,并按照类似于帧间旋转角的处理方法,得到适用于该行像素的帧内旋转矩阵Sj:
接着,执行步骤S8,应用新旋转矩阵以及式6计算的帧内旋转矩阵计算像素点的输出坐标值。例如,在当前录像设备为预设类型的录像设备是,可以将式5的三维齐次坐标Corold_pic3D进行以下的修正:
由于经过滤波处理,应用各个像素点的输出坐标值生成的新图像中,边缘部分区域可能会存在某些像素点的坐标超出了原始图边界的情况,因此,本实施例中可以对输入的图像进行裁剪,例如对原始图像进行裁剪,并只是计算裁剪后的原始图像中各个像素点对应的输出坐标值,也就是只计算原始图像中央部分区域的各个像素点对应的输出坐标值。
然而,即使是使用裁剪后的原始图像,在使用经过滤波后的新旋转矩阵计算获得的像素点的输出坐标值仍可能出现超出原始图像边界的情况,因此需要对裁剪后的原始图像中4条边界上的像素点的输出坐标值进行检测,并且执行步骤S9,判断步骤S5或者步骤S8计算获得的像素点的输出坐标值中,是否出现超过原始图像边界的情况,如是,执行步骤S10,判断对帧间旋转矩阵的滤波次数是否已经到达预设的次数,如没有,则返回步骤S3,再次对帧间旋转矩阵进行滤波,即还是使用式4对已经经过滤波的帧间旋转矩阵进行滤波,并获取再次滤波后的新旋转矩阵,重新计算像素点的输出坐标值。
如果步骤S10的判断结果为是,表示对帧间旋转矩阵的滤波次数已经到达预设的次数,如果继续滤波,像素点的输出坐标点仍可能超出原始图像的边界,但继续滤波将导致图像防抖处理的效率降低,因此,将不再进行滤波处理,而是执行步骤S11,对该帧图像放弃滤波处理,直接输出原始图像,即将该像素点的坐标按照原始图像的坐标值输出。具体的,可以设置一个滤波次数阈值numfilter,若滤波次数达到滤波次数阈值numfilter后,像素点的输出坐标值仍出现超出原始图像的边界,则不再进行滤波。
如果步骤S9的判断结果为否,则表示像素点的输出坐标值没有超出原始图像的边界,则可以计算每一个像素点具体的像素值。但由于式5或者式7计算得到像素点的输出坐标值通常是浮点数,即不是整数,而是一个小数,但图像的像素点应该是以整数表示,因此,需要执行步骤S12,将像素点的输出坐标值映射到原始图像上时,需要使用该浮点坐标周围的四个整点坐标的像素值来做线性插值运算,得到输出坐标的像素值。
假定当前浮点坐标为Cor[x,y],其左上角、右上角、左下角、右下角的整点坐标分别为Cortl[xl,yt]、Cortr[xr,yt]、Corbl[xl,yb]、Corbr[xr,yb],像素值分别为Ptl、Ptr、Pbl、Pbr,当前整点坐标的像素值P由以下公式计算得到:
Px=((Ptl+Pbl)*(xr-x)+(Ptr+Pbr)*(x-xl))/2
Py=((Ptl+Ptr)*(yb-y)+(Pbl+Pbr)*(y-yt))/2
P=floor((Px+Py)/2+0.5) (式8)
其中,floor是向下取整计算函数,即进行四舍五入的计算。
至此,可以计算出原始图像中每一个像素点经过防抖处理计算后的像素值,最后执行步骤S13,输出防抖后的图像。
当然,本发明在实际应用时还有其他的变化,例如,计算相邻帧间旋转矩阵时,不使用罗德里格斯转换形式,而是使用一系列三角函数表示。例如,假设第i帧的一个像素坐标Cori(cxi,cyi,1)映射到第j帧,两帧间的旋转角为Angleij,该坐标在第j帧的位置为Corj(cxj,cyj,czj):
Corj=(RT(Angleij)*Cori)
利用上述公式替换式2,也能够实现相同防抖计算效果。
另外,如果录像设备安装有配备全局的快门镜头,则可以省略帧内旋转矩阵的计算。
由于本发明对图像进行防抖处理时,将帧间的旋转角转换成矩阵并且将旋转角的累加通过相邻帧间旋转矩阵的累乘实现,而避免对大量的三角函数进行累加计算,大大减少了处理器的计算量,可以适用于低成本的录像设备中。
计算机装置实施例:
本实施例的计算机装置手持式录像设备,或者是行车记录仪等,该计算机装置包括有处理器、存储器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于陀螺仪数据的图像防抖处理方法的各个步骤。
例如,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明的各个模块。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
本发明所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
计算机可读存储介质:
上述计算机装置所存储的计算机程序如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述基于陀螺仪数据的图像防抖处理方法的各个步骤。
其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后需要强调的是,本发明不限于上述实施方式,如帧间旋转矩阵具体计算公式的变化,或者滤波系数的改变等,这些改变也应该包括在本发明权利要求的保护范围内。
Claims (10)
1.基于陀螺仪数据的图像防抖处理方法,其特征在于,包括:
获取陀螺仪数据以及图像数据,计算当前帧图像相对于基准图像的帧间旋转矩阵;
对所述帧间旋转矩阵进行滤波,生成新旋转矩阵;
获取所述当前帧图像的像素点初始坐标值,应用所述新旋转矩阵计算对应像素点的输出坐标值;
其中,计算当前帧图像相对于基准图像的帧间旋转矩阵包括:计算所述当前帧图像与所述基准图像之间每相邻两帧图像之间的相邻帧间旋转矩阵,将多个所述相邻帧间旋转矩阵相乘生成所述帧间旋转矩阵。
2.根据权利要求1所述的基于陀螺仪数据的图像防抖处理方法,其特征在于:
所述基准图像为包含连续多帧图像的视频图像的首帧图像。
3.根据权利要求1述的基于陀螺仪数据的图像防抖处理方法,其特征在于:
计算当前帧图像相对于基准图像的帧间旋转矩阵前,判断所获取的陀螺仪数据或者图像数据是否满足预设条件,如是,则使用当前帧图像前预设帧图像作为所述基准图像。
4.根据权利要求3所述的基于陀螺仪数据的图像防抖处理方法,其特征在于:
所述预设条件至少包括以下的任一项:
视频数据的累计图像帧数大于预设帧数阈值;或者
所述陀螺仪数据中一个旋转角度方向的变动频率低于预设频率阈值;或者
所述陀螺仪数据中一个加速度方向预设时间内位移超过预设位移阈值。
5.根据权利要求1至4任一项述的基于陀螺仪数据的图像防抖处理方法,其特征在于:
对所述帧间旋转矩阵进行滤波后,还执行:
判断录像装置是否为预设类型的录像装置,如是,计算当前帧图像非首行像素与首行像素之间的旋转角度,并生成帧内旋转矩阵;
应用所述新旋转矩阵计算对应像素点的输出坐标值包括:应用所述新旋转矩阵以及所述帧内旋转矩阵计算对应像素点的输出坐标值。
6.根据权利要求1至4任一项所述的基于陀螺仪数据的图像防抖处理方法,其特征在于:
获取所述当前帧图像的像素点初始坐标值,应用所述新旋转矩阵计算对应像素点的输出坐标值包括:对所述当前帧图像的原始图像进行裁剪,获取裁剪后的当前帧图像的像素点初始坐标值并计算该像素点对应的输出坐标值。
7.根据权利要求1至4任一项所述的基于陀螺仪数据的图像防抖处理方法,其特征在于:
计算对应像素点的输出坐标值后,还判断所述输出坐标值是否超出当前帧图像的原始图像的边界,如是,对所述新旋转矩阵进行滤波,并使用滤波后的新旋转矩阵重新计算像素点的输出坐标值。
8.根据权利要求7所述的基于陀螺仪数据的图像防抖处理方法,其特征在于:
对所述新旋转矩阵经过预设次数的滤波后,如计算的像素点的输出坐标值仍超出原始图像的边界,则以原始图像作为当前帧图像的输出图像。
9.计算机装置,其特征在于,包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任意一项所述基于陀螺仪数据的图像防抖处理方法的各个步骤。
10.计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至8中任意一项所述基于陀螺仪数据的图像防抖处理方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257198.4A CN109922267A (zh) | 2019-04-01 | 2019-04-01 | 基于陀螺仪数据的图像防抖处理方法、计算机装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910257198.4A CN109922267A (zh) | 2019-04-01 | 2019-04-01 | 基于陀螺仪数据的图像防抖处理方法、计算机装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109922267A true CN109922267A (zh) | 2019-06-21 |
Family
ID=66968015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910257198.4A Pending CN109922267A (zh) | 2019-04-01 | 2019-04-01 | 基于陀螺仪数据的图像防抖处理方法、计算机装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109922267A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519507A (zh) * | 2019-07-23 | 2019-11-29 | 深圳岚锋创视网络科技有限公司 | 一种相机镜头平滑处理方法、装置及便携式终端 |
CN111429493A (zh) * | 2020-03-20 | 2020-07-17 | 青岛联合创智科技有限公司 | 一种多图像间特征点匹配方法 |
CN111951180A (zh) * | 2020-07-09 | 2020-11-17 | 北京迈格威科技有限公司 | 图像抖动校正方法、装置、计算机设备和存储介质 |
CN112396639A (zh) * | 2019-08-19 | 2021-02-23 | 虹软科技股份有限公司 | 图像对齐方法 |
CN112532883A (zh) * | 2020-11-27 | 2021-03-19 | 维沃移动通信有限公司 | 拍摄防抖方法、装置、电子设备和可读存储介质 |
CN112804444A (zh) * | 2020-12-30 | 2021-05-14 | 影石创新科技股份有限公司 | 一种视频处理方法、装置、计算设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744673A (zh) * | 2005-10-09 | 2006-03-08 | 北京中星微电子有限公司 | 一种视频电子防抖的装置 |
US20080253678A1 (en) * | 2007-04-10 | 2008-10-16 | Arcsoft, Inc. | Denoise method on image pyramid |
CN104345517A (zh) * | 2013-08-08 | 2015-02-11 | 佳能株式会社 | 图像抖动校正设备和方法、镜筒、光学设备以及摄像设备 |
CN104954631A (zh) * | 2014-03-25 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 一种视频处理方法、装置和系统 |
CN106027852A (zh) * | 2016-06-24 | 2016-10-12 | 西北工业大学 | 一种用于微纳卫星的视频稳像方法 |
CN108632501A (zh) * | 2017-03-23 | 2018-10-09 | 展讯通信(上海)有限公司 | 视频防抖方法及装置、移动终端 |
-
2019
- 2019-04-01 CN CN201910257198.4A patent/CN109922267A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744673A (zh) * | 2005-10-09 | 2006-03-08 | 北京中星微电子有限公司 | 一种视频电子防抖的装置 |
US20080253678A1 (en) * | 2007-04-10 | 2008-10-16 | Arcsoft, Inc. | Denoise method on image pyramid |
CN104345517A (zh) * | 2013-08-08 | 2015-02-11 | 佳能株式会社 | 图像抖动校正设备和方法、镜筒、光学设备以及摄像设备 |
CN104954631A (zh) * | 2014-03-25 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 一种视频处理方法、装置和系统 |
CN106027852A (zh) * | 2016-06-24 | 2016-10-12 | 西北工业大学 | 一种用于微纳卫星的视频稳像方法 |
CN108632501A (zh) * | 2017-03-23 | 2018-10-09 | 展讯通信(上海)有限公司 | 视频防抖方法及装置、移动终端 |
Non-Patent Citations (1)
Title |
---|
黄文娟,王敬东,薛重飞,王崟: "电子稳像中的参考帧选择策略", 《红外技术》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519507A (zh) * | 2019-07-23 | 2019-11-29 | 深圳岚锋创视网络科技有限公司 | 一种相机镜头平滑处理方法、装置及便携式终端 |
WO2021012998A1 (zh) * | 2019-07-23 | 2021-01-28 | 影石创新科技股份有限公司 | 一种相机镜头平滑处理方法及便携式终端 |
CN112492223A (zh) * | 2019-07-23 | 2021-03-12 | 影石创新科技股份有限公司 | 一种相机镜头平滑处理方法、装置及便携式终端 |
CN112492223B (zh) * | 2019-07-23 | 2023-05-12 | 影石创新科技股份有限公司 | 一种相机镜头平滑处理方法、装置及便携式终端 |
US11968449B2 (en) | 2019-07-23 | 2024-04-23 | Arashi Vision Inc. | Camera lens smoothing method and portable terminal |
CN112396639A (zh) * | 2019-08-19 | 2021-02-23 | 虹软科技股份有限公司 | 图像对齐方法 |
CN111429493A (zh) * | 2020-03-20 | 2020-07-17 | 青岛联合创智科技有限公司 | 一种多图像间特征点匹配方法 |
CN111951180A (zh) * | 2020-07-09 | 2020-11-17 | 北京迈格威科技有限公司 | 图像抖动校正方法、装置、计算机设备和存储介质 |
CN112532883A (zh) * | 2020-11-27 | 2021-03-19 | 维沃移动通信有限公司 | 拍摄防抖方法、装置、电子设备和可读存储介质 |
CN112804444A (zh) * | 2020-12-30 | 2021-05-14 | 影石创新科技股份有限公司 | 一种视频处理方法、装置、计算设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109922267A (zh) | 基于陀螺仪数据的图像防抖处理方法、计算机装置及计算机可读存储介质 | |
CN106534692A (zh) | 一种视频稳像方法及装置 | |
US20220114757A1 (en) | Method for processing event data flow and computing device | |
US20130141547A1 (en) | Image processing apparatus and computer-readable recording medium | |
CN108364319A (zh) | 尺度确定方法、装置、存储介质及设备 | |
US11902662B2 (en) | Image stabilization method and apparatus, terminal and storage medium | |
CN110035228A (zh) | 摄像头防抖系统、方法、电子设备和计算机可读存储介质 | |
JP5766077B2 (ja) | ノイズ低減のための画像処理装置及び画像処理方法 | |
CN108510540A (zh) | 立体视觉摄像机及其高度获取方法 | |
CN103985103A (zh) | 一种生成全景图片的方法和装置 | |
CN107798702A (zh) | 一种用于增强现实的实时图像叠加方法以及装置 | |
JP2021525009A (ja) | 電子式手ぶれ補正方法、画像取得装置及び移動可能なプラットフォーム | |
CN108259770A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN108737726A (zh) | 图像处理设备和方法、摄像设备和计算机可读存储介质 | |
CN113029128A (zh) | 视觉导航方法及相关装置、移动终端、存储介质 | |
CN107341787A (zh) | 单目全景泊车的方法、装置、服务器及汽车 | |
CN111669499B (zh) | 一种视频防抖方法、装置及视频采集设备 | |
CN110966981B (zh) | 测距方法及装置 | |
CN109285122A (zh) | 一种进行图像处理的方法和设备 | |
CN106713762A (zh) | 图像处理方法及装置 | |
CN110310492B (zh) | 一种移动车辆测速方法及装置 | |
JP2003169255A (ja) | シェーディング補正方法 | |
CN107395961A (zh) | 一种图像数据的复原方法和装置 | |
CN109451216A (zh) | 一种拍摄照片的显示处理方法和装置 | |
CN109377268A (zh) | 商品的调整方法及装置 |
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 |
Application publication date: 20190621 |
|
RJ01 | Rejection of invention patent application after publication |