CN109547692A - 图像姿态矫正方法、设备及终端 - Google Patents
图像姿态矫正方法、设备及终端 Download PDFInfo
- Publication number
- CN109547692A CN109547692A CN201811260998.3A CN201811260998A CN109547692A CN 109547692 A CN109547692 A CN 109547692A CN 201811260998 A CN201811260998 A CN 201811260998A CN 109547692 A CN109547692 A CN 109547692A
- Authority
- CN
- China
- Prior art keywords
- pixel
- coordinate
- boundary
- input picture
- parameter
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6811—Motion detection based on the image signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/63—Control of cameras or camera modules by using electronic viewfinders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6812—Motion detection based on additional sensors, e.g. acceleration sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/682—Vibration or motion blur correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/682—Vibration or motion blur correction
- H04N23/683—Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
Abstract
一种图像姿态矫正方法、设备及终端,包括,终端接收输入图像后,获取所述输入图像的2M个像素点,然后,计算所述输入图像的正向映射矩阵。进而根据所述2M个像素点正向映射后的坐标执行越界判断,并在存在越界时,通过调整所述输入图像矫正后图像的位置,消除越界。然后,所述终端根据所述2M个像素点姿态矫正前、后的坐标,计算所述输入图像的逆向映射矩阵。在根据所述逆向映射矩阵对所述输入图像变形后,所述终端输出图像。一方面,本申请将输入图像由正向映射转为逆向映射,能够在图像变形时降低功耗。另一方面,本申请不仅能够高效的执行越界判断和越界调整,而且不会降低输出图像的分辨率。
Description
技术领域
本申请涉及终端领域,尤其涉及一种图像姿态矫正方法、设备及终端。
背景技术
用户使用手持终端拍摄视频的过程中,所述用户手的抖动以及身体的活动使得所述手持终端的姿态变化,所述手持终端的姿态变化导致拍摄得到的视频的画面发生抖动。具体的,视频的第一帧图像如图1中1A所示,对象W的图像位于屏幕的中间位置。所述手持终端的姿态一直在变化,使得视频的第二帧图像如图1中1B所示,对象W的图像位于屏幕右上的位置。视频的第三帧图像如图1中1C所示,对象W的图像位于屏幕右侧的位置。随着所述手持终端姿态的不断变化,后续每一帧图像中对象W的图像的位置均不断变换(图中未示出)。基于此,连续多帧图像组成的所述视频中,对象W的画面抖动甚至模糊不清。为了消除手持终端姿态变化造成的视频抖动,本领域引入了视频防抖方法。
视频防抖方法也称为图像姿态矫正方法。所述图像姿态矫正方法是在视频拍摄过程中,按照所述手持终端的姿态对所述视频的每一帧图像的姿态进行矫正的方法。现有的图像姿态矫正方法,不仅算法复杂,功耗高,而且矫正效果不理想,导致视频防抖的效果不佳。
发明内容
本申请提供了一种图像姿态矫正方法、设备及终端,算法简单,矫正效果好,能够优化视频防抖的效果。
第一方面,本申请提供了一种图像姿态矫正方法,该方法包括,
接收输入图像;
获取所述输入图像的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;
计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;
生成第一映射矩阵组,所述第一映射矩阵组包括M-1个映射矩阵,所述M-1个映射矩阵与M-1个区域一一对应,所述M-1个区域是所述2M个像素点中每个像素点位于所述像素点的所述第一坐标时,每四个所述像素点形成的区域,所述M-1个区域相互之间没有重叠的区域;
按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置,所述坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点;
输出所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像。
其中,将所述输入图像的像素从姿态矫正前的坐标移动到姿态矫正后的坐标,称为正向映射。将所述输入图像的像素从姿态矫正后的坐标移动到姿态矫正前的坐标,称为逆向映射。所述手持终端按照正向映射矩阵执行图像变形时,需要执行浮点数除法运算,因此,所述手持终端只能使用功耗较大的GPU执行图像变形。
基于此,本申请一种可能的实施方式中,所述手持终端接收到输入图像之后,采样得到所述输入图像的M个像素行和2M个像素点。进而,所述手持终端基于所述M个像素行计算所述输入图像的正向映射矩阵。然后,所述手持终端根据所述2M个像素点正向映射前的坐标和正向映射后的坐标,计算得到所述输入图像的逆向映射矩阵。进而,所述手持终端按照所述逆向映射矩阵对所述输入图像执行图像变形。
采用本实现方式,所述手持终端通过将所述输入图像由正向映射转为逆向映射,能够避免执行图像变形时执行浮点数除法运算,从而能够调用图像变形单元执行图像变形,进而能够降低功耗,提高适用性。
一种可选的设计中,所述第一映射矩阵组中每个矩阵是4个单映射矩阵的逆矩阵,所述单映射矩阵是相应区域包含的4个像素点中每个像素点的第二坐标单映射到所述像素点第一坐标的矩阵,所述4个像素点属于所述2M个像素点,所述第二坐标是所述像素点姿态矫正前的坐标。
在本申请一种可选实施方式中,所述手持终端计算得到所述M-1个逆映射矩阵中每个逆映射矩阵的步骤如下:所述手持终端计算所述区域包含的四个像素点中每个像素点的第二坐标映射到所述像素点第一坐标的矩阵。所述四个像素点均属于所述2M个像素点。然后,所述手持终端将所述四个像素点的映射矩阵组成一个矩阵。所述手持终端计算所形成的矩阵的逆矩阵。所述逆矩阵为所述区域的逆映射矩阵。
采用本实现方式,所述手持终端能够将所述输入图像由正向映射转为逆向映射。
一种可选的设计中,所述计算所述2M个像素点中每个像素点的第一坐标,包括:
读取所述输入图像对应的初始稳定姿态参数,所述初始稳定姿态参数是所述输入图像的上一帧图像姿态矫正后的目标像素行的姿态参数,所述目标像素行是图像特定的像素行,所述目标像素行的姿态参数用作所述图像的姿态参数;
计算所述M个像素行中每个像素行的姿态参数与所述初始稳定姿态参数的姿态差;
根据所述M个像素行中每个像素行对应的姿态差计算所述像素行对应的第二映射矩阵;
按照所述M个像素行中每个像素行对应的第二映射矩阵计算所述2M中属于所述像素行的像素点的第一坐标。
其中,所述手持终端计算得到所述输入图像的正向映射矩阵之后,根据所述正向映射矩阵能够计算得到所述2M个像素点姿态矫正后的坐标。进而,为所述手持终端计算所述输入图像的逆向映射矩阵提供参数依据。
一种可选的设计中,在计算所述2M个像素点中每个像素点的第一坐标之后,在输出所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像之前,所述方法还包括:
检测所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界;
响应于所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内,所述稳定姿态参数是用于调整所述输入图像的姿态的参考姿态参数。
其中,所述手持终端根据自身的性能,预先设置所支持的图像的最大分辨率。基于此,所述手持终端按照所支持的最大分辨率设置取景范围。为了保证所选取的图像是所拍摄图像的中心部分。在此基础上,若所述手持终端的姿态变化较为剧烈,那么,所述输入图像对应的稳定姿态参数与所述输入图像的姿态参数差距较大,导致所述输入图像变形之后位置移动较大。这种情况会造成所述取景范围的边界坐标超出变形后图像的边界坐标。
基于此,本申请一种可能的实现方式中,所述手持终端根据所述2M个像素点中每个像素点的第一坐标,检测所述取景范围的边界是否超出变形后图像的边界。
一种可选的设计中,所述检测所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界包括:
计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标;
检测全部所述交点的坐标中是否有位于所述取景范围内的坐标,响应于全部所述交点的坐标中有位于所述取景范围内的坐标,则取景范围的边界超出所述输入图像姿态矫正后对应的边界。
本申请第一种可能的实现方式中,所述手持终端通过所述取景范围的边界与所述输入图像姿态矫正后对应的边界交点的坐标,判断所述取景范围的边界坐标是否超出所述输入图像姿态矫正后对应的边界。
采用本实现方法,所述的越界判断算法独立于图像映射算法,不仅参数较少,而且算法简单。所述手持终端采用本申请实施例的越界判断方法,能够快速高效的执行越界判断。
一种可选的设计中,在计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标之前,所述方法还包括:
判断所述2M个像素点的第一坐标的x值中是否存在大于或者等于所述取景范围的左边界的x轴坐标值,小于或者等于所述取景范围的右边界的x轴坐标值的x值,且,所述2M个像素点的第一坐标的y值中是否存在大于或者等于所述取景范围的下边界的y轴坐标值,小于或者等于所述取景范围的上边界的y轴坐标值的y值;
若是,触发所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内的操作;
若否,触发计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标的操作。
本申请第二种可能的实现方式中,所述手持终端检测2M个像素点矫正后是否会落入所述取景范围内。进而,所述手持终端根据检测结果得到所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界,并执行后续操作。
采用本实现方法,所述的越界判断算法独立于图像映射算法,不仅参数较少,而且算法简单。所述手持终端采用本申请实施例的越界判断方法,能够快速高效的执行越界判断。
一种可选的设计中,所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内包括:
计算所述输入图像的目标稳定姿态参数,所述目标稳定姿态参数是所述输入图像的姿态参数至所述初始稳定姿态参数的路径一半的位置对应的姿态参数,所述输入图像的姿态参数是所述输入图像的目标像素行曝光时的姿态参数;
根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵;
计算所述2M个像素点中每个像素点按照所述目标映射矩阵映射后的第三坐标;
判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,结束调整;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
当出现越界时,所述手持终端通过调整所述正向映射图像的位置消除越界。在本申请的一种可选实施方式中,所述手持终端通过调整所述输入图像的稳定姿态参数,调整所述输入图像姿态矫正后图像的位置,直到消除越界。
采用本申请的越界调整方法,所述手持终端通过二分法逐次调整映射图像的位置,使得所述取景范围的边界最终位于所述输入图像的映射图像的边界范围内。这种越界调整方法,不仅操作简单,而且能够保证输出图像的分辨率不受影响。
一种可选的设计中,在判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界之后,在计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数之前,还包括:
将调整总次数加1;
检测所述调整总次数未达到目标总次数;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,触发所述计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数的操作;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,计算所述目标稳定姿态参数至上一次目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发所述根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
本申请一种可能的实现方式中,所述手持终端预先设置越界调整的目标总次数。所述手持终端每执行一次越界调整,将所述调整总次数加1。当所述调整总次数达到所述目标总次数,且消除了越界,则所述手持终端停止越界调整。当所述调整总次数达到所述目标总次数,但是依然存在越界,则所述手持终端设置新的目标总次数,并在最后一次调整得到的目标稳定姿态参数的基础上,继续调整,直到消除越界。
此外,若所述映射图像的位置移动较大,使得所述输入图像对应的输出图像相对上一帧输出图像的位置移动过大,会造成视频抖动较大。基于此,本实施例中,在消除越界之后,所述手持终端可以继续反复移动所述映射图像的位置,使得所述映射图像的相应边界与所述取景范围的相应边界的距离最小。
第二方面,本申请提供了一种图像姿态矫正方法,该方法包括,
接收输入图像;
获取所述输入图像中的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;
计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;
根据所述2M个像素点中每个像素点的第一坐标,判断取景范围的边界是否超出所述输入图像姿态矫正后对应的边界;
若所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内,所述稳定姿态参数是用于调整所述输入图像的姿态的参考姿态参数;
若所述取景范围的边界未超出所述输入图像姿态矫正后对应的边界,按照映射矩阵移动所述输入图像的每个像素点的位置,所述映射矩阵指示将所述输入图像的像素点由一个坐标移动到另一个坐标的方向和移动长度;
输出所述输入图像的像素点移动之后位于所述取景范围内的像素点形成的图像。
本申请第一种可能的实现方式中,所述手持终端通过所述取景范围的边界与所述输入图像姿态矫正后对应的边界交点的坐标,判断所述取景范围的边界坐标是否超出所述输入图像姿态矫正后对应的边界。
采用本实现方法,所述的越界判断算法独立于图像映射算法,不仅参数较少,而且算法简单。所述手持终端采用本申请实施例的越界判断方法,能够快速高效的执行越界判断。
一种可选的设计中,所述按照映射矩阵移动所述输入图像的每个像素点的位置,包括:
生成第一映射矩阵组,所述第一映射矩阵组包括M-1个映射矩阵,所述M-1个映射矩阵与M-1个区域一一对应,所述M-1个区域是所述2M个像素点中每个像素点位于所述像素点的所述第一坐标时,每四个所述像素点形成的区域,所述M-1个区域相互之间没有重叠的区域;
按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置,所述坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点。
采用本实现方式,所述手持终端通过将所述输入图像由正向映射转为逆向映射,能够避免执行图像变形时执行浮点数除法运算,从而能够调用图像变形单元执行图像变形,进而能够降低功耗,提高适用性。
一种可选的设计中,所述第一映射矩阵组中每个矩阵是4个单映射矩阵的逆矩阵,所述单映射矩阵是相应区域包含的4个像素点中每个像素点的第二坐标单映射到所述像素点第一坐标的矩阵,所述4个像素点属于所述2M个像素点,所述第二坐标是所述像素点姿态矫正前的坐标。
在本申请一种可选实施方式中,所述手持终端计算得到所述M-1个逆映射矩阵中每个逆映射矩阵的步骤如下:所述手持终端计算所述区域包含的四个像素点中每个像素点的第二坐标映射到所述像素点第一坐标的矩阵。所述四个像素点均属于所述2M个像素点。然后,所述手持终端将所述四个像素点的映射矩阵组成一个矩阵。所述手持终端计算所形成的矩阵的逆矩阵。所述逆矩阵为所述区域的逆映射矩阵。
采用本实现方式,所述手持终端能够将所述输入图像由正向映射转为逆向映射。
一种可选的设计中,所述计算所述2M个像素点中每个像素点的第一坐标,包括:
读取所述输入图像对应的初始稳定姿态参数,所述初始稳定姿态参数是所述输入图像的上一帧图像姿态矫正后的目标像素行的姿态参数,所述目标像素行是图像特定的像素行,所述目标像素行的姿态参数用作所述图像的姿态参数;
计算所述M个像素行中每个像素行的姿态参数与所述初始稳定姿态参数的姿态差;
根据所述M个像素行中每个像素行对应的姿态差计算所述像素行对应的第二映射矩阵;
按照所述M个像素行中每个像素行对应的第二映射矩阵计算所述2M中属于所述像素行的像素点的第一坐标。
其中,所述手持终端计算得到所述输入图像的正向映射矩阵之后,根据所述正向映射矩阵能够计算得到所述2M个像素点姿态矫正后的坐标。进而,为所述手持终端计算所述输入图像的逆向映射矩阵提供参数依据。
一种可选的设计中,所述根据所述2M个像素点中每个像素点的第一坐标,判断取景范围的边界是否超出所述输入图像姿态矫正后对应的边界,包括:
计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标;
检测全部所述交点的坐标中是否有位于所述取景范围内的坐标,响应于全部所述交点的坐标中有位于所述取景范围内的坐标,则取景范围的边界超出所述输入图像姿态矫正后对应的边界。
本申请第一种可能的实现方式中,所述手持终端通过所述取景范围的边界与所述输入图像姿态矫正后对应的边界交点的坐标,判断所述取景范围的边界坐标是否超出所述输入图像姿态矫正后对应的边界。
采用本实现方法,所述的越界判断算法独立于图像映射算法,不仅参数较少,而且算法简单。所述手持终端采用本申请实施例的越界判断方法,能够快速高效的执行越界判断。
一种可选的设计中,在计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标之前,所述方法还包括:
判断所述2M个像素点的第一坐标的x值中是否存在大于或者等于所述取景范围的左边界的x轴坐标值,小于或者等于所述取景范围的右边界的x轴坐标值的x值,且,所述2M个像素点的第一坐标的y值中是否存在大于或者等于所述取景范围的下边界的y轴坐标值,小于或者等于所述取景范围的上边界的y轴坐标值的y值;
若是,触发所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内的操作;
若否,触发计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标的操作。
本申请第二种可能的实现方式中,所述手持终端检测2M个像素点矫正后是否会落入所述取景范围内。进而,所述手持终端根据检测结果得到所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界,并执行后续操作。
采用本实现方法,所述的越界判断算法独立于图像映射算法,不仅参数较少,而且算法简单。所述手持终端采用本申请实施例的越界判断方法,能够快速高效的执行越界判断。
一种可选的设计中,所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内包括:
计算所述输入图像的目标稳定姿态参数,所述目标稳定姿态参数是所述输入图像的姿态参数至所述初始稳定姿态参数的路径一半的位置对应的姿态参数,所述输入图像的姿态参数是所述输入图像的目标像素行曝光时的姿态参数;
根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵;
计算所述2M个像素点中每个像素点按照所述目标映射矩阵映射后的第三坐标;
判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,结束调整;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
采用本申请的越界调整方法,所述手持终端通过二分法逐次调整映射图像的位置,使得所述取景范围的边界最终位于所述输入图像的映射图像的边界范围内。这种越界调整方法,不仅操作简单,而且能够保证输出图像的分辨率不受影响。
一种可选的设计中,在判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界之后,在计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数之前,还包括:
将调整总次数加1;
检测所述调整总次数未达到目标总次数;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,触发所述计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数的操作;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,计算所述目标稳定姿态参数至上一次目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发所述根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
若所述映射图像的位置移动较大,使得所述输入图像对应的输出图像相对上一帧输出图像的位置移动过大,会造成视频抖动较大。基于此,采用本实现方法,在消除越界之后,所述手持终端可以继续反复移动所述映射图像的位置,使得所述映射图像的相应边界与所述取景范围的相应边界的距离最小。
第三方面,本申请提供了一种图像姿态矫正设备,该设备包括接收器、处理器和显示器。其中,接收器用于执行第一方面及第一方面各实现方式中输入图像的接收。显示器用于执行第一方面及第一方面各实现方式中图像的显示。处理器用于执行第一方面及第一方面各实现方式中除了图像接收和显示之外的操作。
第四方面,本申请提供了一种图像姿态矫正设备,该设备包括接收器、处理器和显示器。其中,接收器用于执行第二方面及第二方面各实现方式中输入图像的接收。显示器用于执行第二方面及第二方面各实现方式中图像的显示。处理器用于执行第二方面及第二方面各实现方式中除了图像接收和显示之外的操作。
第五方面,本申请提供了一种图像姿态矫正设备,包括用于执行第一方面及第一方面各实现方式的中方法步骤的模块。
第六方面,本申请提供了一种图像姿态矫正设备,包括用于执行第二方面及第二方面各实现方式的中方法步骤的模块。
第七方面,本申请提供了一种终端,包括收发器,处理器以及存储器。其中,收发器、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行程序、指令或代码,存储器和处理器耦合,完成第一方面,或第一方面的任意一种可能的设计中的方法。
第八方面,本申请提供了一种终端,包括收发器,处理器以及存储器。其中,收发器、处理器以及所述存储器之间可以通过总线系统相连。该存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成第二方面,或第二方面的任意一种可能的设计中的方法。
第九方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面、第二方面、第一方面任意可能的设计中或第二方面任意可能的设计中的方法。
为解决现有图像姿态矫正方法存在的问题,一方面,本方案中,手持终端将输入图像由正向映射转为逆向映射,然后,调用图像变形单元执行图像变形,从而能够降低功耗。另一方面,本方案中越界判断算法和越界之后的调整算法独立设置。所述手持终端根据相应算法不仅能够高效的执行越界判断和越界调整,而且不会降低输出图像的分辨率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请视频抖动的一种实施方式的图像示意图;
图2是本申请一种图像姿态矫正方法的方法流程图;
图3是本申请提供的输入图像的一种实施方式的示意图;
图4是本申请提供的陀螺仪的一种实施方式的结构示意图;
图5是本申请提供的曝光所述输入图像的一种实施方式的时序图;
图6是本申请提供的曝光所述输入图像的另一种实施方式的时序图;
图7是本申请提供的本申请视频抖动的另一种实施方式的图像示意图;
图8是本申请提供的所述输入图像与所述正向映射图像的关系的第一种实施方式的示意图;
图9是本申请提供的所述输入图像与所述正向映射图像的关系的第二种实施方式的示意图;
图10是本申请提供的取景范围、所述输入图像以及所述正向映射图像的一种实施方式的位置关系图;
图11是本申请提供的图像姿态矫正方法的第一种实施方式的方法流程图;
图12是本申请提供的所述输入图像与所述正向映射图像的关系的第三种实施方式的示意图;
图13是本申请提供的越界的一种实施方式的示意图;
图14是本申请提供的图像姿态矫正方法的第二种实施方式的方法流程图;
图15是本申请提供的越界判断方法的一种实施方式的方法流程图;
图16是本申请提供的越界的另一种实施方式的示意图;
图17是本申请提供的越界调整方法的第一种实施方式的方法流程图;
图18是本申请提供的姿态参数的关系示意图;
图19是本申请提供的所述取景范围与所述正向映射图像的位置关系变化的第一种实施方式的示意图;
图20是本申请提供的越界调整方法的第二种实施方式的方法流程图;
图21是本申请提供的所述取景范围与所述正向映射图像的位置关系变化的第二种实施方式的示意图;
图22是本申请提供的图像姿态矫正方法的第三种实施方式的方法流程图;
图23是本申请提供的图像姿态矫正设备的第一种实施方式的结构示意图;
图24是本申请提供的终端的第一种实施方式的结构示意图;
图25是本申请提供的图像姿态矫正设备的第二种实施方式的结构示意图;
图26是本申请提供的终端的第二种实施方式的结构示意图。
具体实施方式
视频抖动实际是,所述视频的每帧图像曝光时拍摄终端的姿态,与所述图像的相邻帧图像曝光时所述拍摄终端的姿态不同。基于此,产生视频抖动的拍摄终端是手持终端。本申请适用于手持终端。在本申请可能的实现方式中,所述手持终端是智能手机,平板电脑(pad)或者数码摄像机(digital video,DV)等。
如图2所示,本申请提供了一种图像姿态矫正方法100,所述方法100包括以下步骤。
步骤S101,接收输入图像。
其中,所述输入图像是待进行姿态矫正的图像。
步骤S102,获取所述输入图像的M个像素行。
其中,所述手持终端对所述输入图像采样,得到所述M个像素行,M是大于或者等于2的正整数。所述M个像素行包括所述输入图像上边界的像素行和下边界的像素行。
具体的,M可以是2,可以是所述输入图像所有像素行的总数,还可以是任意大于2小于所述输入图像所有像素行总数的正整数。当M等于2时,所述M个像素行是所述输入图像上边界的像素行和下边界的像素行。当M是所述手持终端设置的任意正整数,M例如是10时,所述M个像素行是所述手持终端从所述输入图像中采样得到的10个像素行,所述10个像素行包括所述输入图像上边界的像素行和下边界的像素行。
应理解,所述M个像素行与所述输入图像左边界像素列和所述输入图像右边界像素列相交的2M个交点,对应2M个像素点。所述M个像素行将所述输入图像划分为M-1个区域。其中,所述M个像素行中每两个相邻的像素行之间形成一个区域。在本申请一种可选的实现方式中,所述M-1个区域的高度相等。
如图3所示,所述手持终端从所述输入图像上采样,得到5个像素行。所述5个像素行分别与所述输入图像左边界像素列和所述输入图像右边界像素列相交,得到10个交点,所述10个交点对应10个像素点。所述5个像素行将所述输入图像划分为4个区域。所述4个区域包括区域1、区域2、区域3和区域4。其中,所述区域1、区域2、区域3和区域4的高度均相等。
步骤S103,读取所述输入图像对应的初始稳定姿态参数。
其中,姿态参数用于表示图像在空间维度的姿态。所述图像在空间维度的姿态实质是所述图像对应的所述手持终端的姿态。基于此,所述姿态参数根据所述手持终端x轴的旋转角速度,y轴的旋转角速度和z轴的旋转角速度计算得到。所述初始稳定姿态参数是所述输入图像的上一帧图像姿态矫正后的目标像素行的姿态参数。所述目标像素行是图像的特定像素行。所述目标像素行的姿态参数视为图像的姿态参数。在本申请的一个具体实施方式中,所述目标像素行是每帧图像的上边界像素行。在本申请的另一个具体实施方式中,所述目标像素行是每帧图像的中间像素行。
如图4所示,陀螺仪按照一定周期检测所述手持终端在x轴、y和z轴三个轴的旋转角速度。在初始时刻,所述陀螺仪数据指示的三个轴的旋转角度例如是θ0=(0,0,0)。所述陀螺仪在t-1时刻的角速度例如是ωt-1。所述陀螺仪在t时刻的角速度例如是ωt。所述手持终端在t时刻的旋转角度θt满足:其中,dt是指两个陀螺仪数据的采样间隔。相应的,所述手持终端使用相同的算法计算得到所述手持终端在t-1时刻的旋转角度θt-1。进一步的,所述手持终端计算t时刻与t-1时刻的旋转角度差dθt,所述dθt满足:dθt=θt-θt-1。得到dθt=(θx,θy,θz)。然后,所述手持终端将t时刻与t-1时刻的旋转角度差dθt转换为姿态参数qt。所述姿态参数qt表示所述手持终端在t时刻的姿态。若所述输入图像在t时刻曝光,则所述姿态参数qt视为所述输入图像曝光时的姿态参数。
实际应用中,所述手持终端的一种曝光机制是全局快门曝光机制,所述手持终端的另一种曝光机制是卷帘快门曝光机制。所述全局快门曝光机制是同一时间曝光整副图像。所述卷帘快门曝光机制是逐行曝光图像。所述手持终端采用全局快门曝光机制曝光所述输入图像时,所述输入图像曝光时的姿态参数根据所述输入图像曝光时刻的陀螺仪数据的计算得到。
所述手持终端采用卷帘快门曝光机制曝光所述输入图像的时序如图5所示。其中,时间戳是指所述输入图像的第一个像素行曝光完成的时间。像素行的曝光时长是指一个像素行从开始曝光到完成曝光持续的时长。所述输入图像中各个像素行的曝光时长相同。读出时长是指所述输入图像第一行曝光的开始时刻至最后一行曝光开始时刻的间隔时长。
基于此,所述输入图像的时间戳与检测陀螺仪数据的时间戳不同。所述手持终端计算任意像素行曝光时的姿态参数时,可以先确定所述像素行曝光的中心时刻,然后,所述手持终端将所述中心时刻对应的姿态参数作为所述像素行的姿态参数。其中,所述中心时刻对应的姿态参数可以根据第一姿态参数和第二姿态参数插值得到。所述第一姿态参数是根据所述中心时刻之前相邻时刻的陀螺仪数据计算得到的姿态参数。所述第二姿态参数是根据所述中心时刻之后相邻时刻的陀螺仪数据计算得到的姿态参数。
结合图6,所述输入图像的高度例如是h。所述输入图像对应的曝光时长例如是te。所述输入图像对应的读出时长例如是tr。所述输入图像的时间戳例如是ts。第i个像素行曝光的中心时刻ti满足: 目标像素行例如是中间的像素行。所述目标像素行曝光的中心时刻tc满足:
基于此,所述手持终端可以根据tc时刻之前且与tc时刻相邻的陀螺仪时刻的陀螺仪数据,计算得到姿态参数qpev。进而,所述手持终端可以根据tc时刻之后且与tc时刻相邻的陀螺仪时刻的陀螺仪数据,计算得到姿态参数qnext。然后,所述手持终端通过插值的方式得到tc时刻对应的姿态参数qc。所述qc满足:qc=slerp(qpev,qnext,α),其中,tpev是指tc时刻之前相邻的陀螺仪时刻,tnext是指tc时刻之前相邻的陀螺仪时刻。
进一步的,在计算得到所述输入图像每个像素行曝光时的姿态参数之后,所述手持终端参照所述输入图像的上一帧图像的稳定姿态参数对所述输入图像的姿态进行矫正。所述目标像素行姿态矫正后的姿态参数,作为所述输入图像姿态矫正后的姿态参数,用作所述输入图像的下一帧图像的初始稳定姿态参数。
应理解,当所述输入图像是视频的第一帧图像时,所述输入图像没有所参照的图像,也就不会形成视频的抖动。基于此,当所述输入图像是视频的第一帧图像时,所述输入图像没有对应的初始稳定姿态参数。
步骤S104,计算所述M个像素行中每个像素行的姿态参数与所述初始稳定姿态参数的姿态差。
其中,所述姿态差指示所述M个像素行中每个像素行曝光时的姿态参数到所述初始稳定姿态参数的路径。
结合步骤S103的记载,所述手持终端采用全局曝光机制曝光所述输入图像时,所述输入图像的M个像素行的姿态参数相同。所述M个像素行对应的姿态差均满足:Δqs=qs*qj -1。其中,所述qs是指所述初始稳定姿态参数,所述qj是指所述M个像素行中第j个像素行。j是大于等于1小于等于M的正整数。
所述手持终端采用卷帘快门曝光机制曝光所述输入图像时,所述输入图像的M个像素行的姿态参数分别是M个时刻的姿态参数。这种情况会导致所述输入图像本身在竖直方向上产生扭曲。如图7中7A所示,被拍摄的对象在竖直方向上应该是直线。所述对象的图像经所述手持终端使用卷帘快门曝光机制曝光之后,得到的所述输入图像如图7中7B所示。
基于此,本实施例中,所述手持终端还需要计算所述输入图像其他部分的姿态参数到所述目标像素行的姿态参数的路径。具体的,所述手持终端可以计算所述M个像素行中每个像素行与所述目标像素行的姿态差。所述第j个像素行与所述目标像素行的姿态差满足:Δqj=qc*qj -1。所述qc是指所述输入图像的目标像素行的姿态参数。然后,所述手持终端计算所述M个像素行中每个像素行的姿态到所述初始稳定姿态的路径Δqs。所述M个像素行中每个像素行与所述初始稳定姿态参数的差值是两个差值的叠加。本实施例中,所述第j个像素行对应的姿态差满足:Δqs,j=Δqs*Δqj。
应理解,当所述手持终端采用卷帘快门曝光机制曝光所述输入图像,且所述输入图像是视频的第一帧图像时,所述手持终端不需要参照初始稳定姿态矫正所述输入图像的姿态,但是,所述手持终端需要参照所述目标像素行矫正所述输入图像其他像素的姿态。基于此,所述手持终端仍需要计算所述M个像素行中每个像素行与所述目标像素行的姿态差。
步骤S105,将所述M个像素行中每个像素行对应的姿态差转换为映射矩阵,得到M个映射矩阵。
其中,映射矩阵指示所述手持终端将像素点由一个坐标移动到另一个坐标的方向和移动长度。本步骤所述的映射矩阵具体指示,所述手持终端将所述输入图像的像素从姿态矫正前对应的坐标移动到姿态矫正后对应坐标的方向和移动长度。本步骤所述的映射矩阵是正向映射矩阵。
应理解,所述姿态差是三维空间上的姿态参数。所述输入图像的像素点在所述手持终端上的位置通过二维空间的坐标参数表示。基于此,本步骤所述的M个映射矩阵是所述M个姿态差分别转换为二维坐标矩阵得到的。具体的,所述手持终端可以通过透视投影(perspective projection)的方法将所述三维姿态矩阵转换为二维坐标矩阵。
结合步骤S103的描述,当所述手持终端采用全局曝光机制曝光所述输入图像时,所述M个映射矩阵完全相同。当所述手持终端采用卷帘门曝光机制曝光所述输入图像时,所述M个映射矩阵各不相同。
步骤S106,按照所述M个映射矩阵中每个映射矩阵将所述输入图像中与所述映射矩阵相应的像素点从姿态矫正前的坐标移动到所述像素点姿态矫正后的坐标。
其中,所述手持终端移动所述输入图像的每个像素点的位置,使得所述输入图像产生了变形。因此,本申请也将本步骤称为图像变形。
应理解,当所述手持终端采用全局曝光机制曝光所述输入图像时,所述手持终端根据同一个映射矩阵移动所述输入图像的全部像素点。当所述手持终端采用卷帘门曝光机制曝光所述输入图像时,所述输入图像不同部分的像素点姿态变形不同,所以,所述手持终端根据分别根据M个映射矩阵移动每个映射矩阵对应部分的像素点。
若所述手持终端采用卷帘门曝光机制曝光所述输入图像,结合步骤S102对所述M个像素行的描述,所述M个像素行例如是所述输入图像的全部像素行,所述M个像素行中每个像素行对应一个映射矩阵。所述手持终端按照所述像素行对应的映射矩阵移动所述像素行中每个像素点的位置。再如,所述M个像素行是从所述输入图像中采样的像素行时,对应所述M个像素行中每个像素行,所述手持终端按照所述像素行对应的映射矩阵移动所述像素行中每个像素点的位置。对应两个相邻像素行形成的区域中的像素点,所述手持终端计算所述两像素行的映射矩阵的平均,将平均计算得到的矩阵作为所述区域对应的映射矩阵。然后,所述手持终端按照所述区域的映射矩阵移动所述区域中各像素点的位置。
结合图3,以图3中示出的区域1为例。所述手持终端计算像素行1的映射矩阵和像素行2的矩阵的平均,得到所述区域1对应的映射矩阵。所述手持终端按照所述区域1对应的映射矩阵,移动位于所述区域1中的像素点的位置。
如图8所示,当所述手持终端采用全局曝光机制曝光所述输入图像时,图8中实线表示所述输入图像的轮廓,虚线表示将所述输入图像进行姿态矫正后的图像的轮廓。如图9所示,当所述手持终端采用卷帘门曝光机制曝光所述输入图像时,图9中实线表示所述输入图像的轮廓,虚线表示将所述输入图像进行姿态矫正后的图像的轮廓。为了便于描述,本申请中将图8和图9中虚线轮廓对应的图像称为正向映射图像。
应理解,本实施例中,所述手持终端在执行步骤S106时,并不生成所述正向映射图像的实际图像。图8和图9仅是为了更加直观的展示所述输入图像的姿态与所述输入图像矫正后的姿态的区别示出的。
步骤S107,输出所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像。
其中,所述手持终端根据自身的性能,预先设置所支持的图像的最大分辨率。所述手持终端获取的所述输入图像,分辨率通常高于所述手持终端所支持的最大分辨率。基于此,所述手持终端按照所支持的最大分辨率设置取景范围。所述手持终端将所述输入图像执行图像变形之后,所述手持终端将所述取景范围内的像素点形成的图像输出。
如图10所示,位于所述输入图像和所述正向映射图像区域内的实线框,即为所述手持终端设置的取景范围。所述取景范围是所述输入图像中心的区域。本实施例中,在执行步骤S106之后,所述手持终端输出所述正向映射图像中位于所述取景范围内的图像。
其中,所述方法100中步骤S101至步骤S105所述的映射矩阵计算过程,由所述手持终端中的中央处理器(central processing unit,CPU)执行。在确定所述映射矩阵之后,所述CPU将所述映射矩阵发送给所述手持终端中具有图像变形功能的模块。所述具有图像变形功能的模块按照所述映射矩阵对所述输入图像执行图像变形,并确定取景范围内的像素数据。然后,所述具有图像变形功能的模块将所确定的像素数据输出到所述手持终端的显示器或者编码器。其中,所述具有图像变形功能的模块例如是所述手持终端包含的图像处理模块中的图像变形单元。所述图像变形单元是用于执行图像变形的硬件。
本领域中,将所述输入图像的像素从姿态矫正前的坐标移动到姿态矫正后的坐标,称为正向映射。将所述输入图像的像素从姿态矫正后的坐标移动到姿态矫正前的坐标,称为逆向映射。执行正向映射时,所述手持终端通常可以参照标准坐标计算出像素点的映射路径。执行逆向映射时,所述手持终端无法根据标准的坐标计算映射路径。基于此,所述手持终端在进行图像姿态矫正时,通常采用正向映射。
所述手持终端按照正向映射矩阵执行图像变形时,需要执行浮点数除法运算。但是,所述图像变形单元不具备执行浮点数除法的功能。基于此,所述手持终端只能使用图像处理器(graphics processing unit,GPU)执行图像变形。所述GPU是通过调用软件执行图像处理的处理器。与所述图像变形单元相比,所述GPU执行图像变形产生的功耗更大。
基于此,本申请提供了图像姿态矫正方法的一种实施例。所述实施例的图像姿态矫正方法能够使用所述图像变形单元执行图像变形,不仅能够降低功耗,而且适用性广。
如图11所示,图像姿态矫正方法200包括如下步骤。
步骤S201,接收输入图像。
步骤S202,获取所述输入图像的2M个像素点。
其中,本实施例所述的输入图像和所述2M个像素点与所述方法100所述的相同。所述2M个像素点的获取过程,如所述方法100中步骤S102所述。
步骤S203,计算所述2M个像素点中每个像素点的第一坐标。
其中,所述第一坐标是将所述像素点姿态矫正后的坐标。
结合图9,所述2M个像素点中每个像素点的第二坐标,是所述像素点位于所述输入图像时对应的坐标。所述2M个像素点中每个像素点的第二坐标,是所述像素点位于所述正向映射图像时对应的坐标。例如,图9中坐标01即为像素点1的第一坐标。坐标11即为像素点01的第二坐标。
其中,所述手持终端首先计算所述M个像素行中每个像素行对应的正向映射矩阵。然后,所述手持终端根据每个所述正向映射矩阵计算每个像素点的第一坐标。所述手持终端通过所述方法100中步骤S103至步骤S105的过程计算所述正向映射矩阵。此处不再详述。
步骤S204,生成第一映射矩阵组。
其中,所述第一映射矩阵组中每个映射矩阵,指示所述映射矩阵对应的像素点从姿态矫正后的坐标移动到姿态矫正前的坐标的方向和移动长度。基于此,本申请可以将所述第一映射矩阵组中每个映射矩阵称为逆映射矩阵。
所述手持终端将所述输入图像执行逆向映射具体为,所述手持终端将所述输入图像姿态矫正后位于整数坐标的像素点移动到所述像素点姿态矫正前的坐标,然后,所述手持终端通过像素插值的方式计算其他像素点的像素值。可以看出,本申请的实施方式中,所述手持终端首先将所述输入图像执行正向映射,然后,所述手持终端基于正向映射的算法计算所述输入图像逆向映射的矩阵。
根据所述方法100所述的正向映射操作,结合图9所示的所述正向映射图像的轮廓,所述输入图像的M-1个区域的变形均不相同。基于此,所述M-1个区域中每个区域正向映射后的区域,对应不同的逆向映射矩阵。所以,本实施例中,所述第一映射矩阵组包括M-1个逆向映射矩阵。所述M-1个逆向映射矩阵与所述输入图像姿态矫正后相应的M-1个区域一一对应。
其中,所述手持终端计算得到所述M-1个逆映射矩阵中每个逆映射矩阵的步骤如下:所述手持终端计算所述区域包含的四个像素点中每个像素点的第二坐标映射到所述像素点第一坐标的矩阵。所述四个像素点均属于所述2M个像素点。然后,所述手持终端将所述四个像素点的映射矩阵组成一个矩阵。所述手持终端计算所形成的矩阵的逆矩阵。所述逆矩阵为所述区域的逆映射矩阵。具体的,所述手持终端可以通过最小二乘法计算每个像素点第二坐标映射到所述像素点第一坐标的矩阵。
如图12所示,所述区域1的四个顶点例如是像素点1、像素点2、像素点3和像素点4。其中,所述像素点1的第一坐标是坐标01,所述像素点1的第一坐标是坐标11。所述像素点2的第一坐标是坐标02,所述像素点2的第一坐标是坐标12。所述像素点3的第一坐标是坐标03,所述像素点3的第一坐标是坐标13。所述像素点4的第一坐标是坐标04,所述像素点4的第一坐标是坐标14。计算坐标01映射到坐标11的映射矩阵,得到第一正向映射矩阵。计算坐标02映射到坐标12的映射矩阵,得到第二正向映射矩阵。计算坐标03映射到坐标13的映射矩阵,得到第三正向映射矩阵。计算坐标04映射到坐标14的映射矩阵,得到第四正向映射矩阵。所述第一正向映射矩阵、第二正向映射矩阵、第三正向映射矩阵和第四正向映射矩阵组成所述区域1的单映射矩阵。所述手持终端求取所述单映射矩阵的逆矩阵,得到所述区域1的逆映射矩阵。图11示出的区域2、区域3和区域4的逆映射矩阵计算,与区域1的逆映射矩阵的计算类似,此处不再详述。
步骤S205,按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置。
其中,坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点。
所述手持终端将所述输入图像中第一坐标是整数的像素点,按照所述像素点对应的逆映射矩阵移动位置。然后,对应第一坐标不是整数的像素点逆映射后的坐标,所述手持终端根据每个相应坐标周围的像素点插值得到像素点。基于此,本实施例中所述手持终端执行图像变形时,无需进行浮点数除法运算。所以,本步骤所述的图像的变形,由所述手持终端中的图像变形单元执行。
具体的,对应第一坐标是整数的像素点,所述手持终端计算所述像素点的第一坐标中的y值与所述2M个像素点中每个像素点的第一坐标中y值的差值的绝对值。所述手持终端按照从小到大的顺序顺次选择四个绝对值。所述四个绝对中对应的四个像素点确定的区域即为所述像素点所属的区域。所述手持终端按照所述四个像素点对应的逆映射矩阵移动所述像素点的位置。
结合图12,像素点a是所述正向映射图像中的像素点。像素点a的坐标例如是(xa,ya)。xa和ya均是整数。所述手持终端读取所述2M个像素点中每个像素点的第一坐标中y值。然后,所述手持终端计算ya与每个所述y的差值的绝对值。进而,所述手持终端从小到大顺次选择四个绝对值。所述四个绝对值对应的像素点形成的区域即为像素点a所属的区域。根据图12可以看出,所述四个绝对值分别对应像素点3、像素点4、像素点5和像素点6。相应的,像素点a属于像素点3、像素点4、像素点5和像素点6形成的区域,即区域2。基于此,所述手持终端按照所述区域2对应的逆映射矩阵移动像素点a的位置。
步骤S206,输出所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像。
本步骤与所述方法100中步骤S107的执行过程相同,此处不再详述。
根据所述方法200的描述可知,本申请的技术方案,所述手持终端通过将所述输入图像由正向映射转为逆向映射,能够避免执行图像变形时执行浮点数除法运算,从而能够调用图像变形单元执行图像变形,进而能够降低功耗,提高适用性。
根据上述对取景范围的描述,所述取景范围的大小固定。为了保证所选取的图像是所拍摄图像的中心部分,所述手持终端将所述输入图像的中间区域设置为取景范围,所述中间区域的边界坐标即为所述取景范围的边界坐标。根据所述方法100的描述可知,所述手持终端参照所述输入图像的上一帧图像矫正后的姿态进行图像变形。若所述手持终端的姿态变化较为剧烈,那么,所述输入图像对应的稳定姿态参数与所述输入图像的姿态参数差距较大,导致所述输入图像变形之后位置移动较大。这种情况会造成所述取景范围的边界坐标超出变形后图像的边界坐标。本申请将取景范围的边界坐标超出变形后图像的边界坐标的现象称为越界。
如图13所示,所述取景范围的左边界位于所述正向映射图像的左边界的左侧。这种现象即为越界。可以看出,图13所示的取景范围内斜线部分没有实际图像,从而造成所述手持终端输出的图像缺少部分内容,并且无法有效的显示所拍摄的图像。
基于此,所述手持终端在执行图像变形之后,在获取图像变形之后取景范围内的像素数据之前,还需要执行越界判断。并且,在判断出现越界时,所述手持终端还需要调整变形后的图像,使所述取景范围的边界完全位于所述变形后图像的边界范围内。
本申请越界判断方法的一种实施方式中,所述手持终端在执行输入图像的正向映射的同时,执行越界判断及越界后的调整操作。所述实施方式中,正向映射的算法以及越界判断的算法设置在一个算法模型中,不仅算法复杂,而且所述手持终端需要处理较多的参数。本申请越界判断方法的另一种实施方式中,越界判断的算法简单,导致影响输出图像的分辨率。
基于此,在方法200的基础上,本申请所述图像姿态矫正方法的另一个实施例中,所述手持终端在执行步骤S203之后,在执行步骤S206之前,还执行越界判断。如图14所示,图像姿态矫正方法300包括如下步骤。
步骤S201,接收输入图像。
步骤S202,获取所述输入图像的2M个像素点。
步骤S203,计算所述2M个像素点中每个像素点的第一坐标。
步骤S301,检测所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界。
步骤S302,响应于所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内。
步骤S204,生成第一映射矩阵组。
步骤S205,按照所述第一映射矩阵组中的每个映射矩阵,移动所述输入图像中矫正后位于所述映射矩阵对应区域内的像素点的位置。
步骤S206,输出所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像。
应理解,所述方法300是对所述方法200的补充,所述方法300中与所述方法200相同的部分,参见所述方法200的描述,此处不再重复。
具体的,所述手持终端可以通过所述取景范围的边界与所述输入图像姿态矫正后对应的边界交点的坐标,判断所述取景范围的边界坐标是否超出所述输入图像姿态矫正后对应的边界。
参见图15,图15是本申请越界判断方法的第一种实施方式的方法流程图。所述越界判断方法31包括如下步骤:
步骤S311,计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标。
步骤S312,检测全部所述交点的坐标中是否有位于所述取景范围内的坐标。
响应于所述交点的坐标中存在位于所述取景范围内的坐标,认为所述取景框的范围超出所述图像姿态矫正后对应的边界。
其中,结合图13可以看出,若出现越界,所述取景范围的边界与所述正向映射图像的边界会出现交点,并且,所述交点的坐标会落在所述取景边界的边界线上。
基于此,所述手持终端根据所述取景范围的每条边界线的坐标定义所述取景范围的每条边界线所在的直线。所述取景范围的左边界所在直线例如是xleft。所述取景范围的右边界所在直线例如是xright。所述取景范围的上边界所在直线例如是ytop。所述取景范围的下边界所在直线例如是ybottom。所述手持终端根据所述2M个像素点中各像素点的第一坐标定义2M条线段。所述2M条线段形成所述正向映射图像的轮廓。
进一步的,所述手持终端计算所述2M条线段分别与所述取景范围的四条边界所在直线的交点。所述2M条线段分别与xleft的交点满足:yleft=yg+wleft*(yg+1-yg),其中,所述2M条线段分别与xright的交点满足:yright=yg+wright*(yg+1-yg),其中,所述2M条线段分别与ytop的交点满足:xtop=xg+wtop*(xg+1-xg),其中,所述2M条线段分别与ybottom的交点满足:xbottom=xg+wbottom*(xg+1-xg),其中,上述各公式中,w是指插值计算的权重,物理上表示交点距离线段一端的距离占整个线段长度的比例,g是指相应线段中的一个顶点像素点,g+1是指相应线段中的另一个顶点像素点。
进而,所述手持终端分别判断每个交点是否落在所述取景范围的边界线上。具体的,判断每个yleft和每个yright是否小于等于ytop,且大于等于ybottom。并且,判断每个xtop和每个xbottom是否小于等于xright,并且大于等于xleft。若任意一个交点满足相应条件,说明所述取景范围的边界超出所述正向映射图像的边界。
本申请还提供了越界判断方法的第二种实施方式。具体的,越界判断方法32包括,所述手持终端判断所述2M个像素点的第一坐标的x值中是否存在大于或者等于所述取景范围的左边界的x轴坐标值,小于或者等于所述取景范围的右边界的x轴坐标值的x值,并且,所述2M个像素点的第一坐标的y值中是否存在大于或者等于所述取景范围的下边界的y轴坐标值,小于或者等于所述取景范围的上边界的y轴坐标值的y值。若是,所述手持终端执行步骤S302;若否,所述手持终端执行方法31。
结合图13,所述手持终端判断所述正向映射图像示出的每个像素点坐标中的x值是否大于等于xleft,且小于等于xright。并判断所述像素点坐标中的y值是否大于等于ybottom,且小于等于xright。图13中,像素点120、像素点121和像素点122的坐标满足上述条件。像素点120、像素点121和像素点122位于所述取景范围的内。
应理解,所述正向映射图像的形状不规则,使得两像素点之间轮廓不确定。基于此,即使相应的2M个像素点均未落在所述取景范围的内,所述正向映射图像的边界也可能与所述取景范围的边界相交。如图16所示,所述正向映射图像示出的2M个像素点均未落在所述取景范围的内,但是,所述像素点151和所述像素点152的连线形成的轮廓与所述取景范围的上边界和左边界相交。二者相交形成的斜线区域是越界的部分。因此,即使所述方法32的判断结果为否,仍然需要执行方法31。
此外,需要指出的,在执行所述方法31和所述方法32时,所述手持终端以所述输入图像逆向映射之后的边界作为计算参数。其中,所述输入图像的2M个像素点逆向映射之后的坐标根据步骤S205的映射矩阵计算得到。
由此可见,本申请实施例所述的越界判断算法独立于图像映射算法,不仅参数较少,而且算法简单。所述手持终端采用本申请实施例的越界判断方法,能够快速高效的执行越界判断。
进一步的,若出现越界,所述手持终端通过调整所述正向映射图像的位置消除越界。
具体的,本申请提供了越界调整方法的实施例。如图17所示,所述越界调整方法33包括如下步骤:
步骤S331,计算所述输入图像的目标稳定姿态参数。
其中,所述目标稳定姿态参数是所述输入图像对应的新的稳定姿态参数。在本申请一种可能的实施例中,所述目标稳定姿态参数表示为qtar。
参见图18,qtar是qc至qs的路径的一半时对应的姿态参数。所述qc和所述qs如方法100中所述。
步骤S332,根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵。
其中,所述手持终端可以根据所述目标稳定姿态参数计算所述输入图像的正向映射矩阵。本实施例的具体操作参见方法100的记载。或者,所述手持终端也可以根据所述目标稳定姿态参数计算所述输入图像的逆向映射矩阵。本实施例的具体操作参见方法200的记载。
步骤S333,计算所述2M个像素点中每个像素点按照所述目标映射矩阵映射后的第三坐标。
步骤S334,判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界。若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,结束调整,根据所述2M个像素点中每个像素点的第三坐标执行步骤S204;若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,执行步骤S335;
其中,步骤S334的操作参见方法31,和/或,方法32的记载。此处不再详述。
步骤S335,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径的一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发步骤S332。
重复执行步骤S331至步骤S335,直到所述手持终端消除越界。
其中,新的目标稳定姿态参数是qc至qtar的路径的一半时对应的姿态参数。
应理解,所述手持终端每调整一次稳定姿态参数,所述输入图像映射后的图像的位置发生一次改变,相应的,所述2M个像素点对应的映射后的坐标均发生一次改变。如图19所示,第n轮越界调整之后,正向映射图像与所述取景范围的位置关系如19A所示。第n+1轮越界调整之后,正向映射图像与所述取景范围的位置关系如19B所示。其中,n是大于等于1的正整数。基于此,为了区分每一轮越界调整后所述2M个像素点对应的映射坐标,本申请通过“第一”,“第二”和“第三”等顺序号,标注所述2M个像素点对应的映射坐标。
由此可见,采用本申请的越界调整方法,所述手持终端通过二分法逐次调整映射图像的位置,使得所述取景范围的边界最终位于所述输入图像的映射图像的边界范围内。这种越界调整方法,不仅操作简单,而且能够保证输出图像的分辨率不受影响。
在方法33的基础上,本申请还提供了越界调整方法的另一种实施方式。如图20所示,越界调整方法34在步骤S333之后在步骤S334之前还包括以下步骤。
步骤S336,将调整总次数加1。
步骤S337,检测所述调整总次数未达到目标总次数。若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,执行步骤S335。若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,执行步骤S338。
本实施例中,所述手持终端预先设置越界调整的目标总次数。所述手持终端每执行一次越界调整,将所述调整总次数加1。当所述调整总次数达到所述目标总次数,且消除了越界,则所述手持终端停止越界调整。当所述调整总次数达到所述目标总次数,但是依然存在越界,则所述手持终端设置新的目标总次数,并在最后一次调整得到的目标稳定姿态参数的基础上,重复执行方法34,直到消除越界。在本申请的一个可选示例中,所述目标总次数是5。
步骤S338,计算所述目标稳定姿态参数至上一次目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发步骤S332。
其中,所述手持终端通过调整映射图像的位置消除越界。若所述映射图像的位置移动较大,使得所述输入图像对应的输出图像相对上一帧输出图像的位置移动过大,会造成视频抖动较大。基于此,本实施例中,在消除越界之后,所述手持终端继续反复移动所述映射图像的位置,使得所述映射图像的相应边界与所述取景范围的相应边界的距离最小。
本步骤中,可以理解为,所述手持终端将qtar作为新的qc,进而,取新的qc至上一次调整后的目标稳定姿态参数的路径一半的位置对应的姿态参数,从而将所述映射图像的位置向与步骤S335的调整方向相反的方向移动。
如图21所示,越界状态如图21A所示,所述正向映射图像的左边界在所述取景范围左边界的右侧。所述手持终端将所述正向映射图像的位置向左移动n次,达到图21B所述状态,所述正向映射图像的左边界在所述取景范围左边界的左侧,越界消除。其中,n小于所述手持终端预设的目标总次数。然后,所述手持终端将所述正向映射图像的位置向右移动目标总次数-n次,不断缩小所述正向映射图像的左边界与所述取景范围左边界的距离,达到图21C所述状态。这样的操作能够减小视频抖动的程度。
应理解,本实施例中,未描述所述越界调整方法34的其他步骤。所述越界调整方法34的其他步骤与所述越界调整方法33相同。此处不再赘述。
综合上述,本申请所述的技术方案,通过将所述输入图像由正向映射转为逆向映射,能够调用图像变形单元执行图像变形,从而能够降低功耗,提高适用性。此外,本申请所述的技术方案,所述越界判断算法和越界之后的调整算法独立设置。所述手持终端根据相应算法不仅能够高效的执行越界判断和越界调整,而且不会降低输出图像的分辨率。
如图22所示,本申请提供了图像姿态矫正方法的另一种实施例。所述图像姿态矫正方法400包括如下步骤。
步骤S401,接收输入图像。
步骤S402,获取所述输入图像中的2M个像素点。
步骤S403,计算所述2M个像素点中每个像素点的第一坐标。
其中,步骤S401至步骤S403与方法200中步骤S201至步骤S203的操作过程相同。此处不再详述。
步骤S404,判断取景范围的边界是否超出所述输入图像姿态矫正后对应的边界。若所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,执行步骤S405;若所述取景范围的边界未超出所述输入图像姿态矫正后对应的边界,执行步骤S406。
步骤S405,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内。
应理解,所述手持终端可以根据所述2M个像素点中每个像素点的第一坐标执行步骤S404的判断操作。根据方法100和方法200的记载,可以理解为,所述手持终端参照所述输入图像的正向映射图像执行步骤S404的判断操作。
其中,所述手持终端可以按照方法31和/或方法32执行步骤S404。所述手持终端可以按照方法33和/或方法34执行步骤S405。此处不再详述。
步骤S406,按照映射矩阵移动所述输入图像的每个像素点的位置。
其中,所述映射矩阵指示将所述输入图像的像素点由一个坐标移动到另一个坐标的方向和移动长度。所述映射矩阵例如是正向映射矩阵。
步骤S407,输出所述输入图像的像素点移动之后位于所述取景范围内的像素点形成的图像。
由此可见,采用方法400的实现方式,本申请独立设置越界判断算法和越界之后的调整算法。所述手持终端根据相应算法不仅能够高效的执行越界判断和越界调整,而且不会降低输出图像的分辨率。
此外,在方法400的基础上,步骤S406还可以包括:所述手持终端生成第一映射矩阵组,按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置。
其中,本实施方式的操作详见方法200的相关描述,此处不再详述。
采用本实现方式,所述手持终端通过将所述输入图像由正向映射转为逆向映射,能够避免执行图像变形时执行浮点数除法运算,从而能够调用图像变形单元执行图像变形,进而能够降低功耗,提高适用性。
与上述图像姿态矫正方法对应的,本申请还提供了图像姿态矫正设备。
对应所述方法200、方法300、方法31至方法34,所述图像姿态矫正设备包括接收模块、显示模块和处理模块。所述接收模块、所述显示模块和所述处理模块可以用于执行所述方法200、方法300、方法31至方法34对应的实施例的方法。
以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时,所述接收模块的功能可以集成到接收器,所述显示模块的功能可以集成到显示器,所述处理模块的功能可以集成到处理器实现。如图23所示,图23是本申请提供的图像姿态矫正设备的第一种实施方式的结构示意图。该图像姿态矫正设备230包括接收器231、处理器232和显示器233。所述接收器231可以执行方法200、方法300、方法31至方法34中输入图像的接收。所述显示器233可以执行方法200、方法300、方法31至方法34中图像的显示。所述处理器232可以执行方法200、方法300、方法31至方法34中除了图像的接收和显示之外的操作。
例如,该接收器231可以用于接收输入图像;该处理器232可以用于获取所述输入图像的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;生成第一映射矩阵组,所述第一映射矩阵组包括M-1个映射矩阵,所述M-1个映射矩阵与M-1个区域一一对应,所述M-1个区域是所述2M个像素点中每个像素点位于所述像素点的所述第一坐标时,每四个所述像素点形成的区域,所述M-1个区域相互之间没有重叠的区域;按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置,所述坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点;该显示器233可以用于显示所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像。
具体内容可以参考方法200、方法300、方法31至方法34中相关部分的描述,此处不再赘述。
与图23所示的图像姿态矫正设备对应的,本申请还提供了一种终端。如图24所示,图24是本申请提供的终端的第一种实施方式的结构示意图。该终端240可以包括处理器241、收发器242和存储器243。其中,存储器243可以用于存储终端240预装的程序/代码,也可以存储用于处理器241执行时的代码等。
应理解,本申请的终端240可执行方法200、方法300、方法31至方法34,其中收发器242用于执行方法200、方法300、方法31至方法34中图像的接收,处理器241用于执行方法200、方法300、方法31至方法34中除了图像接收之外的其它处理。在此不再赘述。
对应所述方法400,所述图像姿态矫正设备包括接收模块、显示模块和处理模块。所述接收模块、所述显示模块和所述处理模块可以用于执行所述方法400对应的实施例的方法。
以上各个模块的划分仅仅是一种逻辑功能的划分,实际实现时,所述接收模块的功能可以集成到接收器,所述显示模块的功能可以集成到显示器,所述处理模块的功能可以集成到处理器实现。如图25所示,图25是本申请提供的图像姿态矫正设备的第二种实施方式的结构示意图。该图像姿态矫正设备250包括接收器251、处理器252和显示器253。所述接收器251可以执行方法400中输入图像的接收。所述显示器253可以执行方法400中图像的显示。所述处理器252可以执行方法400中除了图像的接收和显示之外的操作。
例如,该接收器251可以用于接收输入图像;该处理器252可以用于获取所述输入图像中的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;根据所述2M个像素点中每个像素点的第一坐标,判断取景范围的边界是否超出所述输入图像姿态矫正后对应的边界;若所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内,所述稳定姿态参数是用于调整所述输入图像的姿态的参考姿态参数;若所述取景范围的边界未超出所述输入图像姿态矫正后对应的边界,按照映射矩阵移动所述输入图像的每个像素点的位置,所述映射矩阵指示将所述输入图像的像素点由一个坐标移动到另一个坐标的方向和移动长度;该显示器253可以用于显示所述输入图像的像素点移动之后位于所述取景范围内的像素点形成的图像。
具体内容可以参考方法400中相关部分的描述,此处不再赘述。
与图25所示的图像姿态矫正设备对应的,本申请还提供了一种终端。如图26所示,图26是本申请提供的终端的第二种实施方式的结构示意图。该终端260可以包括处理器261、收发器262和存储器263。其中,存储器263可以用于存储终端260预装的程序/代码,也可以存储用于处理器261执行时的代码等。
应理解,本申请的终端260可执行方法400,其中收发器262用于执行方法400中图像的接收,处理器261用于执行方法400中除了图像接收之外的其它处理。在此不再赘述。
具体实现中,对应终端240和终端260,本申请还分别提供一种计算机存储介质,其中,设置在任意终端中的计算机存储介质可存储有程序,该程序执行时,可实施包括图2至图22提供的图像姿态矫正方法的各实施例中的部分或全部步骤。任意终端中的存储介质均可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(randomaccess memory,RAM)等。
本申请中,收发器可以是取景器,感光器、图像传感器或者或其组合。处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP),GPU或者其组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-onlymemory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
图24和图26中还可以包括总线接口,总线接口可以包括任意数量的互联的总线和桥,具体由处理器代表的一个或多个处理器和存储器代表的存储器的各种电路链接在一起。总线接口还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器提供用于在传输介质上与各种其他设备通信的单元。处理器负责管理总线架构和通常的处理,存储器可以存储处理器在执行操作时所使用的数据。
本领域技术任何还可以了解到本申请列出的各种说明性逻辑块(illustrativelogical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请保护的范围。
本申请中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于终端中。可选地,处理器和存储媒介也可以设置于终端中的不同的部件中。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施过程构成任何限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例部分的说明即可。
另外,本申请提及的“第一”以及“第二”等序数词,用于对多个相同属性但包含不同内容的对象进行区分。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (33)
1.一种图像姿态矫正方法,其特征在于,所述方法包括:
接收输入图像;
获取所述输入图像的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;
计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;
生成第一映射矩阵组,所述第一映射矩阵组包括M-1个映射矩阵,所述M-1个映射矩阵与M-1个区域一一对应,所述M-1个区域是所述2M个像素点中每个像素点位于所述像素点的所述第一坐标时,每四个所述像素点形成的区域,所述M-1个区域相互之间没有重叠的区域;
按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置,所述坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点;
输出所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像。
2.如权利要求1所述的图像姿态矫正方法,其特征在于,
所述第一映射矩阵组中每个矩阵是4个单映射矩阵的逆矩阵,所述单映射矩阵是相应区域包含的4个像素点中每个像素点的第二坐标单映射到所述像素点第一坐标的矩阵,所述4个像素点属于所述2M个像素点,所述第二坐标是所述像素点姿态矫正前的坐标。
3.如权利要求1所述的图像姿态矫正方法,其特征在于,所述计算所述2M个像素点中每个像素点的第一坐标,包括:
读取所述输入图像对应的初始稳定姿态参数,所述初始稳定姿态参数是所述输入图像的上一帧图像姿态矫正后的目标像素行的姿态参数,所述目标像素行是图像特定的像素行,所述目标像素行的姿态参数用作所述图像的姿态参数;
计算所述M个像素行中每个像素行的姿态参数与所述初始稳定姿态参数的姿态差;
根据所述M个像素行中每个像素行对应的姿态差计算所述像素行对应的第二映射矩阵;
按照所述M个像素行中每个像素行对应的第二映射矩阵计算所述2M中属于所述像素行的像素点的第一坐标。
4.如权利要求1至3中任一项所述的图像姿态矫正方法,其特征在于,在计算所述2M个像素点中每个像素点的第一坐标之后,在输出所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像之前,所述方法还包括:
检测所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界;
响应于所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内,所述稳定姿态参数是用于调整所述输入图像的姿态的参考姿态参数。
5.如权利要求4所述的图像姿态矫正方法,其特征在于,所述检测所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界包括:
计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标;
检测全部所述交点的坐标中是否有位于所述取景范围内的坐标,响应于全部所述交点的坐标中有位于所述取景范围内的坐标,则取景范围的边界超出所述输入图像姿态矫正后对应的边界。
6.如权利要求5所述的图像姿态矫正方法,其特征在于,在计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标之前,所述方法还包括:
判断所述2M个像素点的第一坐标的x值中是否存在大于或者等于所述取景范围的左边界的x轴坐标值,小于或者等于所述取景范围的右边界的x轴坐标值的x值,且,所述2M个像素点的第一坐标的y值中是否存在大于或者等于所述取景范围的下边界的y轴坐标值,小于或者等于所述取景范围的上边界的y轴坐标值的y值;
若是,触发所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内的操作;
若否,触发计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标的操作。
7.如权利要求4所述的图像姿态矫正方法,其特征在于,所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内包括:
计算所述输入图像的目标稳定姿态参数,所述目标稳定姿态参数是所述输入图像的姿态参数至所述初始稳定姿态参数的路径一半的位置对应的姿态参数,所述输入图像的姿态参数是所述输入图像的目标像素行曝光时的姿态参数;
根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵;
计算所述2M个像素点中每个像素点按照所述目标映射矩阵映射后的第三坐标;
判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,结束调整;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
8.如权利要求7所述的图像姿态矫正方法,其特征在于,在判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界之后,在计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数之前,还包括:
将调整总次数加1;
检测所述调整总次数未达到目标总次数;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,触发所述计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数的操作;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,计算所述目标稳定姿态参数至上一次目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发所述根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
9.一种图像姿态矫正方法,其特征在于,所述方法包括:
接收输入图像;
获取所述输入图像中的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;
计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;
根据所述2M个像素点中每个像素点的第一坐标,判断取景范围的边界是否超出所述输入图像姿态矫正后对应的边界;
若所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内,所述稳定姿态参数是用于调整所述输入图像的姿态的参考姿态参数;
若所述取景范围的边界未超出所述输入图像姿态矫正后对应的边界,按照映射矩阵移动所述输入图像的每个像素点的位置,所述映射矩阵指示将所述输入图像的像素点由一个坐标移动到另一个坐标的方向和移动长度;
输出所述输入图像的像素点移动之后位于所述取景范围内的像素点形成的图像。
10.如权利要求9所述的图像姿态矫正方法,其特征在于,所述按照映射矩阵移动所述输入图像的每个像素点的位置,包括:
生成第一映射矩阵组,所述第一映射矩阵组包括M-1个映射矩阵,所述M-1个映射矩阵与M-1个区域一一对应,所述M-1个区域是所述2M个像素点中每个像素点位于所述像素点的所述第一坐标时,每四个所述像素点形成的区域,所述M-1个区域相互之间没有重叠的区域;
按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置,所述坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点。
11.如权利要求10所述的图像姿态矫正方法,其特征在于,
所述第一映射矩阵组中每个矩阵是4个单映射矩阵的逆矩阵,所述单映射矩阵是相应区域包含的4个像素点中每个像素点的第二坐标单映射到所述像素点第一坐标的矩阵,所述4个像素点属于所述2M个像素点,所述第二坐标是所述像素点姿态矫正前的坐标。
12.如权利要求9所述的图像姿态矫正方法,其特征在于,所述计算所述2M个像素点中每个像素点的第一坐标,包括:
读取所述输入图像对应的初始稳定姿态参数,所述初始稳定姿态参数是所述输入图像的上一帧图像姿态矫正后的目标像素行的姿态参数,所述目标像素行是图像特定的像素行,所述目标像素行的姿态参数用作所述图像的姿态参数;
计算所述M个像素行中每个像素行的姿态参数与所述初始稳定姿态参数的姿态差;
根据所述M个像素行中每个像素行对应的姿态差计算所述像素行对应的第二映射矩阵;
按照所述M个像素行中每个像素行对应的第二映射矩阵计算所述2M中属于所述像素行的像素点的第一坐标。
13.如权利要求9所述的图像姿态矫正方法,其特征在于,所述根据所述2M个像素点中每个像素点的第一坐标,判断取景范围的边界是否超出所述输入图像姿态矫正后对应的边界,包括:
计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标;
检测全部所述交点的坐标中是否有位于所述取景范围内的坐标,响应于全部所述交点的坐标中有位于所述取景范围内的坐标,则取景范围的边界超出所述输入图像姿态矫正后对应的边界。
14.如权利要求13所述的图像姿态矫正方法,其特征在于,在计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标之前,所述方法还包括:
判断所述2M个像素点的第一坐标的x值中是否存在大于或者等于所述取景范围的左边界的x轴坐标值,小于或者等于所述取景范围的右边界的x轴坐标值的x值,且,所述2M个像素点的第一坐标的y值中是否存在大于或者等于所述取景范围的下边界的y轴坐标值,小于或者等于所述取景范围的上边界的y轴坐标值的y值;
若是,触发所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内的操作;
若否,触发计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标的操作。
15.如权利要求9至14中任一项所述的图像姿态矫正方法,其特征在于,所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内包括:
计算所述输入图像的目标稳定姿态参数,所述目标稳定姿态参数是所述输入图像的姿态参数至所述初始稳定姿态参数的路径一半的位置对应的姿态参数,所述输入图像的姿态参数是所述输入图像的目标像素行曝光时的姿态参数;
根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵;
计算所述2M个像素点中每个像素点按照所述目标映射矩阵映射后的第三坐标;
判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,结束调整;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
16.如权利要求15所述的图像姿态矫正方法,其特征在于,在判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界之后,在计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数之前,还包括:
将调整总次数加1;
检测所述调整总次数未达到目标总次数;
若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,触发所述计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数的操作;
若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,计算所述目标稳定姿态参数至上一次目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并触发所述根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵的操作。
17.一种图像姿态矫正设备,其特征在于,所述设备包括:处理器、接收器和显示器,其中,
所述接收器,用于接收输入图像;
所述处理器,用于获取所述输入图像的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;生成第一映射矩阵组,所述第一映射矩阵组包括M-1个映射矩阵,所述M-1个映射矩阵与M-1个区域一一对应,所述M-1个区域是所述2M个像素点中每个像素点位于所述像素点的所述第一坐标时,每四个所述像素点形成的区域,所述M-1个区域相互之间没有重叠的区域;按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置,所述坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点;
所述显示器,用于显示所述输入图像的像素点移动之后位于取景范围内的像素点形成的图像。
18.如权利要求17所述的图像姿态矫正设备,其特征在于,
所述第一映射矩阵组中每个矩阵是4个单映射矩阵的逆矩阵,所述单映射矩阵是相应区域包含的4个像素点中每个像素点的第二坐标单映射到所述像素点第一坐标的矩阵,所述4个像素点属于所述2M个像素点,所述第二坐标是所述像素点姿态矫正前的坐标。
19.如权利要求17所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于读取所述输入图像对应的初始稳定姿态参数,所述初始稳定姿态参数是所述输入图像的上一帧图像姿态矫正后的目标像素行的姿态参数,所述目标像素行是图像特定的像素行,所述目标像素行的姿态参数用作所述图像的姿态参数;计算所述M个像素行中每个像素行的姿态参数与所述初始稳定姿态参数的姿态差;根据所述M个像素行中每个像素行对应的姿态差计算所述像素行对应的第二映射矩阵;按照所述M个像素行中每个像素行对应的第二映射矩阵计算所述2M中属于所述像素行的像素点的第一坐标。
20.如权利要求17所述的图像姿态矫正设备,其特征在于,
所述处理器,还用于检测所述取景范围的边界是否超出所述输入图像姿态矫正后对应的边界;响应于所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内,所述稳定姿态参数是用于调整所述输入图像的姿态的参考姿态参数。
21.如权利要求20所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标;检测全部所述交点的坐标中是否有位于所述取景范围内的坐标,响应于全部所述交点的坐标中有位于所述取景范围内的坐标,则取景范围的边界超出所述输入图像姿态矫正后对应的边界。
22.如权利要求21所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于判断所述2M个像素点的第一坐标的x值中是否存在大于或者等于所述取景范围的左边界的x轴坐标值,小于或者等于所述取景范围的右边界的x轴坐标值的x值,且,所述2M个像素点的第一坐标的y值中是否存在大于或者等于所述取景范围的下边界的y轴坐标值,小于或者等于所述取景范围的上边界的y轴坐标值的y值;若是,触发所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内的操作;若否,计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标。
23.如权利要求20所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于计算所述输入图像的目标稳定姿态参数,所述目标稳定姿态参数是所述输入图像的姿态参数至所述初始稳定姿态参数的路径一半的位置对应的姿态参数,所述输入图像的姿态参数是所述输入图像的目标像素行曝光时的姿态参数;根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵;计算所述2M个像素点中每个像素点按照所述目标映射矩阵映射后的第三坐标;判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界;若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,结束调整;若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵。
24.如权利要求23所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于将调整总次数加1;检测所述调整总次数未达到目标总次数;若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数;若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,计算所述目标稳定姿态参数至上一次目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵。
25.一种图像姿态矫正设备,其特征在于,所述设备包括:处理器、接收器和显示器,其中,
所述接收器,用于接收输入图像;
所述处理器,用于获取所述输入图像中的2M个像素点,所述2M像素点是M个像素行分别与所述输入图像左边界像素列和所述图像右边界像素列相交的点,M是大于或者等于2的正整数,所述M个像素行包含所述输入图像的上边界的像素行和下边界的像素行;计算所述2M个像素点中每个像素点的第一坐标,所述第一坐标是所述像素点姿态矫正后的坐标;根据所述2M个像素点中每个像素点的第一坐标,判断取景范围的边界是否超出所述输入图像姿态矫正后对应的边界;若所述取景范围的边界超出所述输入图像姿态矫正后对应的边界,调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内,所述稳定姿态参数是用于调整所述输入图像的姿态的参考姿态参数;若所述取景范围的边界未超出所述输入图像姿态矫正后对应的边界,按照映射矩阵移动所述输入图像的每个像素点的位置,所述映射矩阵指示将所述输入图像的像素点由一个坐标移动到另一个坐标的方向和移动长度;
所述显示器,用于显示所述输入图像的像素点移动之后位于所述取景范围内的像素点形成的图像。
26.如权利要求25所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于生成第一映射矩阵组,所述第一映射矩阵组包括M-1个映射矩阵,所述M-1个映射矩阵与M-1个区域一一对应,所述M-1个区域是所述2M个像素点中每个像素点位于所述像素点的所述第一坐标时,每四个所述像素点形成的区域,所述M-1个区域相互之间没有重叠的区域;按照所述第一映射矩阵组中的每个映射矩阵,移动位于所述映射矩阵对应的区域内坐标值是整数的像素点的位置,所述坐标值是整数的像素点是所述输入图像姿态矫正之后位于所述区域内的部分像素点。
27.如权利要求26所述的图像姿态矫正设备,其特征在于,
所述第一映射矩阵组中每个矩阵是4个单映射矩阵的逆矩阵,所述单映射矩阵是相应区域包含的4个像素点中每个像素点的第二坐标单映射到所述像素点第一坐标的矩阵,所述4个像素点属于所述2M个像素点,所述第二坐标是所述像素点姿态矫正前的坐标。
28.如权利要求25所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于读取所述输入图像对应的初始稳定姿态参数,所述初始稳定姿态参数是所述输入图像的上一帧图像姿态矫正后的目标像素行的姿态参数,所述目标像素行是图像特定的像素行,所述目标像素行的姿态参数用作所述图像的姿态参数;计算所述M个像素行中每个像素行的姿态参数与所述初始稳定姿态参数的姿态差;根据所述M个像素行中每个像素行对应的姿态差计算所述像素行对应的第二映射矩阵;按照所述M个像素行中每个像素行对应的第二映射矩阵计算所述2M中属于所述像素行的像素点的第一坐标。
29.如权利要求25所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标;检测全部所述交点的坐标中是否有位于所述取景范围内的坐标,响应于全部所述交点的坐标中有位于所述取景范围内的坐标,则取景范围的边界超出所述输入图像姿态矫正后对应的边界。
30.如权利要求29所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于判断所述2M个像素点的第一坐标的x值中是否存在大于或者等于所述取景范围的左边界的x轴坐标值,小于或者等于所述取景范围的右边界的x轴坐标值的x值,且,所述2M个像素点的第一坐标的y值中是否存在大于或者等于所述取景范围的下边界的y轴坐标值,小于或者等于所述取景范围的上边界的y轴坐标值的y值;若是,触发所述调整所述输入图像的稳定姿态参数,使所述取景范围的边界位于所述图像姿态矫正后对应的边界之内的操作;若否,计算所述取景范围的四条边界线中每条边界线所在的直线与2M个所述第一坐标中每两个第一坐标所在直线的交点的坐标。
31.如权利要求25所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于计算所述输入图像的目标稳定姿态参数,所述目标稳定姿态参数是所述输入图像的姿态参数至所述初始稳定姿态参数的路径一半的位置对应的姿态参数,所述输入图像的姿态参数是所述输入图像的目标像素行曝光时的姿态参数;根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵;计算所述2M个像素点中每个像素点按照所述目标映射矩阵映射后的第三坐标;判断所述取景范围的边界是否超出所述2M个像素点的第三坐标形成的边界;若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,结束调整;若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,并根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵。
32.如权利要求31所述的图像姿态矫正设备,其特征在于,
所述处理器,具体用于将调整总次数加1;检测所述调整总次数未达到目标总次数;若所述取景范围的边界超出所述2M个像素点的第三坐标形成的边界,计算所述输入图像的姿态参数到所述目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数;若所述取景范围的边界未超出所述2M个像素点的第三坐标形成的边界,计算所述目标稳定姿态参数至上一次目标稳定姿态参数的路径一半的位置对应的姿态参数,得到新的目标稳定姿态参数,根据所述目标稳定姿态参数计算所述输入图像的目标映射矩阵。
33.一种终端,其特征在于,包括:
处理器,用于执行程序指令,以使所述终端执行权利要求1至8或9至16中任一项所述的图像姿态矫正方法,和
耦合到所述处理器的存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260998.3A CN109547692B (zh) | 2018-10-26 | 2018-10-26 | 图像姿态矫正方法、设备及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260998.3A CN109547692B (zh) | 2018-10-26 | 2018-10-26 | 图像姿态矫正方法、设备及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109547692A true CN109547692A (zh) | 2019-03-29 |
CN109547692B CN109547692B (zh) | 2021-12-14 |
Family
ID=65845737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811260998.3A Active CN109547692B (zh) | 2018-10-26 | 2018-10-26 | 图像姿态矫正方法、设备及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109547692B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110675384A (zh) * | 2019-09-24 | 2020-01-10 | 广东博智林机器人有限公司 | 图像处理方法及装置 |
CN112215782A (zh) * | 2020-10-29 | 2021-01-12 | 中国科学院长春光学精密机械与物理研究所 | 一种卷帘快门成像装置图像校正方法及装置 |
CN112468737A (zh) * | 2020-11-25 | 2021-03-09 | 上海摩象网络科技有限公司 | 自动曝光区域曝光量权重矩阵处理方法和装置 |
CN112734653A (zh) * | 2020-12-23 | 2021-04-30 | 影石创新科技股份有限公司 | 一种视频图像的运动平滑处理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141038A1 (en) * | 2003-12-25 | 2005-06-30 | Koji Kita | Method of determining image correction and image processing apparatus using the method |
CN101093319A (zh) * | 2006-06-21 | 2007-12-26 | 索尼株式会社 | 面光源装置和液晶显示单元 |
CN101534370A (zh) * | 2008-03-11 | 2009-09-16 | 株式会社Pfu | 图像处理器、图像处理方法和计算机程序产品 |
CN102222229A (zh) * | 2011-07-28 | 2011-10-19 | 陈庆武 | 手指静脉图像预处理方法 |
CN103020938A (zh) * | 2012-12-14 | 2013-04-03 | 北京经纬恒润科技有限公司 | 一种基于加权平均法的空域图像缝合方法和系统 |
CN103888741A (zh) * | 2014-02-25 | 2014-06-25 | 北京淳中视讯科技有限公司 | 投影图像的几何校正辅助方法、装置及系统 |
CN105450900A (zh) * | 2014-06-24 | 2016-03-30 | 佳能株式会社 | 用于文档图像的畸变校正方法和设备 |
CN107993192A (zh) * | 2017-12-13 | 2018-05-04 | 北京小米移动软件有限公司 | 证件图像校正方法、装置和设备 |
-
2018
- 2018-10-26 CN CN201811260998.3A patent/CN109547692B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141038A1 (en) * | 2003-12-25 | 2005-06-30 | Koji Kita | Method of determining image correction and image processing apparatus using the method |
CN101093319A (zh) * | 2006-06-21 | 2007-12-26 | 索尼株式会社 | 面光源装置和液晶显示单元 |
CN101534370A (zh) * | 2008-03-11 | 2009-09-16 | 株式会社Pfu | 图像处理器、图像处理方法和计算机程序产品 |
CN102222229A (zh) * | 2011-07-28 | 2011-10-19 | 陈庆武 | 手指静脉图像预处理方法 |
CN103020938A (zh) * | 2012-12-14 | 2013-04-03 | 北京经纬恒润科技有限公司 | 一种基于加权平均法的空域图像缝合方法和系统 |
CN103888741A (zh) * | 2014-02-25 | 2014-06-25 | 北京淳中视讯科技有限公司 | 投影图像的几何校正辅助方法、装置及系统 |
CN105450900A (zh) * | 2014-06-24 | 2016-03-30 | 佳能株式会社 | 用于文档图像的畸变校正方法和设备 |
CN107993192A (zh) * | 2017-12-13 | 2018-05-04 | 北京小米移动软件有限公司 | 证件图像校正方法、装置和设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110675384A (zh) * | 2019-09-24 | 2020-01-10 | 广东博智林机器人有限公司 | 图像处理方法及装置 |
CN112215782A (zh) * | 2020-10-29 | 2021-01-12 | 中国科学院长春光学精密机械与物理研究所 | 一种卷帘快门成像装置图像校正方法及装置 |
CN112468737A (zh) * | 2020-11-25 | 2021-03-09 | 上海摩象网络科技有限公司 | 自动曝光区域曝光量权重矩阵处理方法和装置 |
CN112468737B (zh) * | 2020-11-25 | 2022-04-29 | 上海摩象网络科技有限公司 | 自动曝光区域曝光量权重矩阵处理方法和装置 |
CN112734653A (zh) * | 2020-12-23 | 2021-04-30 | 影石创新科技股份有限公司 | 一种视频图像的运动平滑处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109547692B (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109547692A (zh) | 图像姿态矫正方法、设备及终端 | |
CN108765498B (zh) | 单目视觉跟踪方法、装置及存储介质 | |
CN105872354B (zh) | 图像处理系统和方法、摄像系统、图像生成装置和方法 | |
JP6859442B2 (ja) | キャリブレーション装置、キャリブレーションシステム、およびキャリブレーション方法 | |
CN109801374B (zh) | 一种通过多角度图像集重构三维模型的方法、介质及系统 | |
CN103996172B (zh) | 一种基于多步校正的鱼眼图像校正方法 | |
EP2154648B1 (en) | Image processing device, image processing method, and image processing program | |
EP3007134B1 (en) | Three-dimensional scan recovery | |
CN110246185B (zh) | 图像处理方法、装置、系统、存储介质和标定系统 | |
JP2017112602A (ja) | パノラマ魚眼カメラの画像較正、スティッチ、および深さ再構成方法、ならびにそのシステム | |
CN112655024B (zh) | 一种图像标定方法及装置 | |
TWI701941B (zh) | 圖像處理方法及裝置、電子設備及儲存介質 | |
JP2011139367A (ja) | 画像処理装置および画像処理方法 | |
CN108805938B (zh) | 一种光学防抖模组的检测方法、移动终端及存储介质 | |
US11638071B2 (en) | Camera assembly and monitoring camera | |
CN110648274B (zh) | 鱼眼图像的生成方法及装置 | |
CN102771121A (zh) | 照相机平台系统 | |
CN108257186A (zh) | 标定图像的确定方法及装置、摄像机及存储介质 | |
CN105791663B (zh) | 距离估算系统及距离估算方法 | |
CN110544278B (zh) | 刚体运动捕捉方法及装置、agv位姿捕捉系统 | |
KR100596976B1 (ko) | 왜곡 영상 보정 장치 및 방법 및 이를 이용하는 영상디스플레이 시스템 | |
KR101597915B1 (ko) | 화상 처리 장치 및 화상 처리 방법 | |
JP2004212213A (ja) | 動作データ作成用コンピュータプログラムパッケージ、動作データ作成方法及び基準マーカーユニット | |
JP4581512B2 (ja) | 3次元画像処理装置、光軸調整方法、光軸調整支援方法 | |
JP3594225B2 (ja) | 広視野カメラ装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |