[go: up one dir, main page]

CN120343400A - 一种图像处理方法、终端设备、计算机可读存储介质 - Google Patents

一种图像处理方法、终端设备、计算机可读存储介质

Info

Publication number
CN120343400A
CN120343400A CN202410046076.1A CN202410046076A CN120343400A CN 120343400 A CN120343400 A CN 120343400A CN 202410046076 A CN202410046076 A CN 202410046076A CN 120343400 A CN120343400 A CN 120343400A
Authority
CN
China
Prior art keywords
image
double
shot
camera
shake 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
Application number
CN202410046076.1A
Other languages
English (en)
Inventor
胡毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202410046076.1A priority Critical patent/CN120343400A/zh
Publication of CN120343400A publication Critical patent/CN120343400A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/45Cameras or camera modules comprising electronic image sensors; Control thereof for generating image signals from two or more image sensors being of different type or operating in different modes, e.g. with a CMOS sensor for moving images in combination with a charge-coupled device [CCD] for still images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • H04N23/631Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
    • H04N23/632Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters for displaying or modifying preview images prior to image capturing, e.g. variety of image resolutions or capturing parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/95Computational photography systems, e.g. light-field imaging systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Studio Devices (AREA)

Abstract

本申请提供一种图像处理方法、终端设备、计算机可读存储介质,涉及图像处理技术领域,该方法应用于包括第一摄像头和第二摄像头的终端设备,方法包括:响应于用户打开相机应用的第一操作,显示相机应用的预览界面,预览界面包括拍摄控件,相机应用开启了背景虚化功能和防抖功能;响应于用户对拍摄控件的第二操作,存储目标图像;其中,目标图像为基于第一图像的深度信息对第一图像进行背景虚化处理得到的图像,深度信息基于第一标定数据,第一图像和第二图像确定,第一图像为第一摄像头在第一时刻拍摄到的图像,第二图像为第二摄像头在第一时刻拍摄到的图像,第一标定数据用于指示第一时刻第一摄像头和第二摄像头的位姿关系。

Description

一种图像处理方法、终端设备、计算机可读存储介质
技术领域
本申请涉及图像处理技术领域,尤其涉及一种图像处理方法、终端设备、计算机可读存储介质。
背景技术
随着技术发展,如智能手机、平板电脑等便携的智能设备在人们的日常生活中使用的场景越来越多,比如,人们更习惯使用方便携带的智能设备进行拍摄,以记录生活中的精彩瞬间。
目前,智能设备的背景虚化功能与防抖功能无法同时正常启用。否则,会出现由于防抖处理,导致镜片移动,无法准确计算深度信息,从而影响虚化效果。
发明内容
有鉴于此,本申请提供了一种图像处理方法、终端设备、计算机可读存储介质,在用户拍摄的场景中,能够达到防抖效果的同时,保证照片虚化效果。
第一方面,本申请提供一种图像处理方法,应用于包括第一摄像头和第二摄像头的终端设备,方法包括:响应于用户打开相机应用的第一操作,显示相机应用的预览界面,预览界面包括拍摄控件,相机应用开启了背景虚化功能和防抖功能;响应于用户对拍摄控件的第二操作,存储目标图像;其中,目标图像为基于第一图像的深度信息对第一图像进行背景虚化处理得到的图像,深度信息基于第一标定数据,第一图像和第二图像确定,第一图像为第一摄像头在第一时刻拍摄到的图像,第二图像为第二摄像头在第一时刻拍摄到的图像,第一标定数据用于指示第一时刻第一摄像头和第二摄像头的位姿关系。
其中,用户对拍摄控件的第二操作为用户按下快门的操作。
基于上述过程,在开启了背景虚化功能和防抖功能的情况下,终端设备响应于用户按下快门的操作,可以基于防抖数据、第一图像以及第二图像确定出目标图像,保证终端设备在拍摄目标图像时可以进行防抖,并且根据防抖数据确定出用于虚化的深度信息,从而保证目标图像的虚化效果。
在第一方面的一种可能的实现方式中,方法还包括:获取第一时刻对应的第一防抖数据,第一防抖数据为在第一时刻移动目标摄像头的镜片的移动参数,目标摄像头包括第一摄像头和/或第二摄像头;基于第一防抖数据和第二标定数据,确定第一标定数据;第二标定数据用于指示第一摄像头和第二摄像头的初始位姿关系。
由于第一防抖数据是在第一时刻移动目标摄像头的镜片的移动参数,那么说明目标摄像头的镜片发生了移动,那么,基于用于指示第一摄像头和第二摄像头的初始位姿关系的第二标定数据以及第一防抖数据,可以准确的推算出目标摄像头的镜片在第一时刻发生移动后,第一摄像头和第二摄像头之间的位姿关系,如此,可以保证第一标定数据的准确性,从而提高基于第一标定数据计算深度信息的准确性,继而提高虚化效果。
在第一方面的一种可能的实现方式中,获取第一时刻的第一防抖数据,包括:
确定目标双摄图像,目标双摄图像为终端设备在第一时刻采集到的双摄图像,目标双摄图像包括第一图像和第二图像;
基于目标双摄图像的时间戳,获取第一防抖数据;第一防抖数据的时间戳与目标双摄图像的时间戳的时间差处于预设时间范围内。
其中,第一防抖数据用于表示控制终端设备摄像头中镜片移动的方向以及距离,而移动控制过程是连续的,也就是说,在一定时间内,防抖数据不会出现断崖式的变化。如此,若第一防抖数据的时间戳与目标双摄图像的时间戳的时间差处于预设时间范围内,且该预设时间范围内,防抖数据的变化较小,则说明第一防抖数据的时间戳与目标双摄图像的时间戳之间的时间差是可以接受的,在这个情况下,可以认为在目标双摄图像的时间戳处获取的防抖数据为第一防抖数据。
此外,终端设备可以根据目标双摄图像确定出虚化图像,因此,可以基于目标双摄图像的时间戳来准确的确定与第一防抖数据,保证第一防抖数据与目标双摄图像的相关性,即第一防抖数据的时间戳与目标双摄图像之间的时间戳之间的时间差在预设的时间范围内
在上述实现过程中,确定出目标双摄图像后,可以基于目标双摄图像的时间戳来准确的确定与第一防抖数据,以保证第一防抖数据的准确性,从而保证第一标定数据的准确性,提高虚化效果。
在第一方面的一种可能的实现方式中,确定目标双摄图像,包括:获取多组双摄图像,多组双摄图像中的每一组双摄图像包括同一时刻第一摄像头拍摄到的图像和第二摄像头拍摄到的图像,多组双摄图像中每组双摄图像对应的时间戳与第一时刻的时间差处于预设时间范围内;从多组双摄图像中确定目标双摄图像。
在抓拍或普通拍摄的场景中,由于拍摄时刻发送抖动或未对准被拍摄物体,也就是在第一时刻获取的双摄图像存在不清楚等质量不好的情况,因此,可以在确定目标双摄图像时,先获取到时间戳与第一时刻的时间差处于预设时间范围内的多组双摄图像,之后,再从多组双摄图像中确定出符合要求的目标双摄图像。
其中符合要求的目标双摄图像可以为清晰度大于预设清晰度的双摄图像,或者,可以为第一图像与第二图像之间的相似度大于预设相似度的双摄图像等。
同一时刻可以是指第一摄像头拍摄图像的时刻与第二摄像头拍摄图像的时刻完全相同,或者,也可以指第一摄像头拍摄图像的时刻与第二摄像头拍摄图像的时刻之间的差值在预设范围内。
其中,在第一摄像头拍摄图像的时刻与第二摄像头拍摄图像的时刻之间的差值在预设范围内的情况下,可以表明虽然第一摄像头拍摄图像的时刻与第二摄像头拍摄图像的时刻并不完全相同,但其差值较小,此时第一摄像头拍摄图像与第二摄像头拍摄图像之间的相似度较高,因此可以认为也是同一时刻。
在上述实现过程中,可以保证从时间戳与第一时刻较近的双摄图像中选取一个目标双摄图像,以保证图像的质量。
在第一方面的一种可能的实现方式中,基于目标双摄图像的时间戳,获取第一防抖数据,包括:获取与多组双摄图像中每组双摄图像对应的第二防抖数据;基于目标双摄图像的时间戳和多个第二防抖数据确定第一防抖数据。
在确定出多组双摄图像后,可以确定出多个第二防抖数据,为了保证最终得到的第一防抖数据的准确性,可以基于目标双摄图像的时间戳和多个第二防抖数据进行筛选、插值计算等方式进一步确定出第一防抖数据,从而在防抖的情况下提高基于双摄图像进行虚化效果。
在第一方面的一种可能的实现方式中,基于目标双摄图像的时间戳和多个第二防抖数据确定第一防抖数据,包括:基于目标双摄图像的时间戳,从多个第二防抖数据中确定与目标双摄图像的时间戳对应的第三防抖数据;在与第三防抖数据存在多个的情况下,对多个第三防抖数据进行插值处理,以获得第一防抖数据。
由于在目标双摄图像的时间戳可能不存在防抖数据,因此,终端设备可以先从多个第二防抖数据中确定与目标双摄图像的时间戳对应的第三防抖数据,第三防抖数据的时间戳与目标双摄图像的时间戳之间存在时间差,且时间差在预设范围内。之后,终端设备再对第三防抖数据进行插值处理,以得到目标双摄图像的时间戳的防抖数据,从而保证能够准确的基于防抖数据计算深度信息,以提高双摄图像的虚化效果。
在第一方面的一种可能的实现方式中,多组双摄图像为双摄图像为对应时间戳与第一时刻的时间差处于预设时间范围内的双摄图像中有效的双摄图像;多个第二防抖数据为与多组双摄图像中每组双摄图像对应的防抖数据中有效的防抖数据。
有效的双摄图像可以是清晰度大于预设清晰度的双摄图像,或者,可以为第一图像与第二图像之间的相似度大于预设相似度的双摄图像等。需要说明的是,有效的双摄图像与上述确定满足条件的目标双摄图像的确定过程类似,但并不完全相同,二者确定过程中涉及的预设清晰度以及预设相似度可以相同也可以不同,根据实际的应用来配置具体数值。
有效的防抖数据可以是防抖参数小于预设防抖参数的防抖数据。
通过上述方式确定多组双摄图像以及多个第二防抖数据的有效性,可以保证目标图像的质量。
在第一方面的一种可能的实现方式中,终端设备包括存储器,存储器包括至少两个存储区域;获取与多组双摄图像中每组双摄图像对应的第二防抖数据,包括:从存储器的第一存储区域读取第二防抖数据;其中,在从第一存储区域读取防抖数据的情况下,终端设备将需存储的防抖数据存储至第二存储区域,第一存储区域为至少两个存储区域中的任意一个存储区域,第二存储区域为至少两个存储区域中除第一存储区域外的存储区域。
终端设备可以从第一存储区域中读取第二防抖数据,在终端设备读取第二防抖数据的过程中,终端设备可以继续向第二存储区域中存储需存储的防抖数据。如此,可以避免防抖数据由于存储空间不足或终端设备的读取过程,出现防抖数据缺失的问题,保证准确的获取到防抖数据,从而提高虚化效果。
第二方面,本申请提供一种终端设备,所述终端设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述终端设备执行如第一方面及其任一种可能的设计方式所述的方法。
第三方面,本申请提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如上第一方面及其任一种可能的设计方式所述的方法。
第四方面,本申请提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上第第一方面及其任一种可能的设计方式所述的方法。
第五方面,本申请提供一种装置,该装置包含在终端设备中,该装置具有实现上述方面及可能的实现方式中任一方法中终端设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,分配模块或单元,扫描模块或单元,回收模块或单元,移动模块或单元和存储模块或单元等。
第六方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述第一方面提供的任意一种方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
可以理解地,上述提供的第二方面及其任一种可能的设计方式所述的终端设备,第三方面所述的计算机可读存储介质,以及第四方面所述的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种虚化照片拍摄过程的示意图;
图2为本申请实施例提供的一种虚化照片的示意图;
图3为本申请实施例提供的一种照片防抖拍摄过程的示意图;
图4为本申请实施例提供的一种图像处理过程的示意图;
图5为本申请实施例提供的一种终端设备的结构示意图;
图6为本申请实施例提供的一种终端设备的软件结构框图;
图7为本申请实施例提供的一种图像处理方法的流程示意图一;
图8为本申请实施例提供的一种图像处理方法的流程示意图二;
图9为本申请实施例提供的一种双摄图像存储过程的示意图;
图10为本申请实施例提供的一种防抖数据存储过程的示意图;
图11为本申请实施例提供的一种双摄图像及防抖数据的示意图;
图12为本申请实施例提供的一种双摄图像与防抖数据对应的示意图;
图13为本申请实施例提供的一种防抖数据平滑滤波的示意图;
图14为本申请实施例提供的一种防抖数据插值的示意图;
图15为本申请实施例提供的一种深度计算的示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在介绍本申请实施例之前,首先对本申请实施例涉及的技术进行详细介绍。
1.拍摄防抖技术,是针对用户手持终端设备进行拍照,由于手部抖动导致拍摄得到不清楚的照片提出的一种技术。
在用户拍摄的场景下,在按下快门之前,被拍摄物体反射的光线通过摄像头中的镜片在感光传感器所在平面成清晰的像,若在此时按下快门,且保证终端设备不发生抖动,那么就可以拍摄得到一张清晰的照片。然而在按下快门的时刻,终端设备由于用户手部的抖动而发生机身抖动,从而导致摄像头中的镜片发生位移,那么镜片与被拍摄物体之间的位置发生变化,则被拍摄物体反射的光线通过摄像头中的镜片在感光传感器所在平面成模糊的像,那么只能得到一张模糊的照片。
为了解决上述问题,相关技术提出一种光学图像稳定器(optical imagestabilizer,OIS)。OIS可以监测终端设备的机身发生抖动的位移信息。然后,终端设备根据抖动的位移信息计算出需要补偿的位移量。之后,终端设备基于需要补偿的位移量移动摄像头中的镜片,以抵消由抖动产生的位移,从而避免拍摄得到的照片模糊。
例如,在x轴为横轴,y为纵轴的平面直角坐标系下,若镜片的中心位置原来处于(0,0)。OIS监测到机身发生抖动,抖动的位移信息为机身向x轴正方向移动了1个单位长度。可以理解的是,机身向x轴正方向移动了1个单位长度,那么相应的,镜片的中心位置到达了(1,0)。那么,终端设备可以基于机身抖动的位移信息,确定需要将镜片从发生抖动后所处的当前位置向x轴反方向移动1个单位长度。在通过大写字母和符号表示移动的方向的情况下,例如,X+表示x轴正方向,Y-表示y轴反方向,数字表示移动的长度。根据OIS检测结果,终端设备可以将位移信息记为X+1,表示镜片发生抖动时,向x轴正方向移动1个单位长度,那么终端设备计算得到的需要补偿的位移量为X-1,表示OIS可以控制摄像头中的镜片的中心位置从(1,0)向x轴反方向移动1个单位长度,使得镜片的中心位置回到(0,0)。如此,便可以避免由于抖动导致拍摄得到的照片不清晰的问题。
在上述示例中,抖动的位移信息用于表示终端设备或终端设备摄像头中镜片的移动量,其包括移动方向以及移动距离。终端设备计算得到的需要补偿的位移量用于表示需要控制终端设备摄像头中镜片移动的移动量,为了便于描述,本申请实施例称其为防抖数据,或OIS数据。防抖数据中也相应地包括移动方向以及移动距离。
在本申请后续实施例中,移动方向以及移动距离可以为本申请中的移动参数。
可以理解地,抖动的位移信息中的移动方向与防抖数据中的移动方向相反,抖动的位移信息中的移动距离与防抖数据中的移动距离数值相等。
2.虚化,是一种拍照技术,利用该技术拍摄得到的照片中,前景清晰,而后景(或者称为背景)模糊。
一般情况下,拍摄人员通过调整镜头的拍摄参数,调整光线在镜头中的传播路径,使得除了被拍摄物体之外的背景的外形或轮廓变得模糊或不清晰,从而产生一种虚化效果。
便携式终端设备由于成本或技术等原因,无法配置可调整拍摄参数的镜头,因而无法利用上述方式拍摄虚化照片。为了能够满足用户拍摄虚化照片的需求,目前一般利用算法虚化的方式拍摄虚化照片,即利用图像处理技术实现虚化效果。具体地,终端设备先拍摄未虚化的照片,之后利用算法处理,保证该未虚化的照片中的主体部分清晰度不变,而背景部分变得模糊,从而达到虚化的效果。
在利用算法虚化的方式拍摄虚化照片的情况下,终端设备需要先确定出在图像内需要保持清晰的区域,以及需要被模糊处理的区域,如此,可以达到虚化的效果。终端设备可以通过该区域内的被拍摄物体与摄像头之间的距离来确定前景以及后景,也就是需要保持清晰的区域以及需要被模糊处理的区域,也就是说,终端设备需要利用图像的深度信息对图像进行虚化处理。
目前,利用人眼三角定位原理可以计算被拍摄物体距离摄像头的距离,为此提出一种双摄算法实现虚化。如图1所示,在利用双摄算法拍摄虚化照片的过程中,终端设备利用双摄模块中的两个摄像头同时获取图像,由于主摄像头与辅摄像头的位置不一样,因此,从主摄像头的位置与辅摄像头的位置分别拍摄同一个被拍摄物体时,该被拍摄物体在主摄像头拍摄的视野中的位置,与被拍摄物体在辅摄像头拍摄的视野中的位置存在差异。从主摄像头的位置与被拍摄物体之间的连线,以及从辅摄像头的位置与被拍摄物体之间的连线之间存在夹角,该夹角被称为视差角,那么,被拍摄物体与主摄像头以及辅摄像头可以构成三角形。此外,已知主摄像头的位置与辅摄像头的位置,主摄像头与辅摄像头内镜片的位置以及焦距等光学参数,则利用三角形相似性原理,可以计算出被拍摄物体与摄像头之间的距离。具体计算公式等可参看相关技术,此处不再赘述。
也就是说,在双摄模块中两个摄像头位姿关系确定的情况下,终端设备可以基于双摄模块拍摄的两个图像获取到每个图像内每一个像素点对应的物体到摄像头之间的距离,也被称为图像的深度信息。
一般地,终端设备基于深度信息对主摄像头拍摄的主图像进行虚化以得到虚化照片。具体地,终端设备可以利用图像的深度信息确定出需要突出的主体部分以及需要模糊的背景部分,并对需要模糊的背景部分做模糊处理,可以得到一张虚化照片。如图2所示,为一张虚化照片的示意图,该虚化照片中区域1的主体部分为清晰的,而区域2中的部分为模糊的。
目前,用户使用便携式终端设备进行拍照时,还存在由于抖动导致图像不清楚的问题。例如,用户拍摄时手部抖动情况下,带动终端设备移动,可能会导致终端设备的感光传感器在同一位置接收到不同的光线,且同一位置接收到的不同的光线叠加在一起就会导致图像模糊。为此,可以利用上述相关技术中提到的OIS解决抖动导致图像不清楚的问题。如图3所示,在终端设备中配置OIS,以对摄像头进行移动控制,避免由于抖动导致拍摄的照片存在模糊的问题。
但是,目前终端设备无法同时启用双摄算法实现的背景虚化功能以及防抖功能。若同时启用双摄算法实现的背景虚化功能以及防抖功能,之后,在用户按下快门的情况下,用户双手抖动,为了能够避免由于抖动产生的图像模糊问题,终端设备会根据监测到的抖动移动双摄模块中至少一个摄像头的镜片,从而保证双摄模块中至少一个摄像头能够拍摄出清楚的照片。然而,由于镜片发生变化,终端设备无法确定出镜片发生变化之后两个摄像头之间的位姿关系,继而无法根据双摄模块获取的两张图像准确的计算出深度信息,则最终导致照片的虚化效果差,甚至无法对照片进行虚化。
为此,本申请提供一种图像处理方法,该方法应用于终端设备,终端设备可以检测终端设备机身由于抖动发生的位移信息,并根据检测到的位移信息对镜头进行防抖控制,以保证能够获取清晰的双摄图像。之后,终端设备再根据防抖控制的信息对拍摄双摄图像的镜头的参数进行补偿,以确定出镜头拍摄双摄图像时的位置,从而保证准确的基于镜头拍摄双摄图像的位置以及双摄图像能够准确的计算出图像的深度信息,继而得到虚化照片,并保证虚化照片的虚化效果。
一些示例中,如图4所示,终端设备的防抖模块可以检测终端设备由于抖动发生的位移信息,并根据位移信息控制双摄模块中摄像头中镜片反向移动,以抵消由于抖动发生的位移,保证双摄模块输出清晰的两张图像。之后,双摄补偿模块获取防抖模块控制双摄模块中镜片移动的防抖数据,并基于防抖数据对双摄模块中摄像头的镜片标定位置进行补偿,以准确得到镜片的当前位置,即镜片的补偿位置。最后,终端设备的深度虚化模块基于镜片的补偿位置与两张图像可准确的确定出图像中的深度信息,并基于深度信息对图像进行准确的虚化处理,得到虚化照片。
为了更好地理解本申请实施例,首先对本申请实施例提供的终端设备进行介绍。
本申请实施例提供的图像处理方法,可以应用于终端设备。终端设备具体可以是手机、平板电脑、智慧屏、笔记本电脑、车载设备、可穿戴设备(如智能手表)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)、人工智能(artificial intelligence)设备等具有拍照功能的终端设备。本申请实施例对终端设备的具体类型、所安装的操作系统均不作限制。
以下,介绍终端设备的硬件结构。
图5示出了终端设备100的结构示意图,终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195、防抖模块196等。
可以理解的是,本发明实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。电源管理模块141用于连接电池142,充电管理模块140与处理器110。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。
终端设备100可以通过ISP,摄像头193,视频图像编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或N个摄像头193,N为大于1的正整数。
在一些实施例中,终端设备包括两个摄像头,其中一个摄像头可以被称为主摄像头,另一个摄像头可以被称为辅摄像头或副摄像头。在本实施例中,可以认为这两个摄像头组成一个模块,如称为双摄模块。
防抖模块196用于检测终端设备的机身发生抖动的位移信息,并根据由抖动的位移信息计算出的需要补偿的位移量移动摄像头193中的镜片,避免由于终端设备抖动导致拍摄得到的照片模糊。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频图像编解码器用于对数字视频或图像压缩或解压缩。终端设备100可以支持一种或多种视频图像编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。或者,终端设备100可以显示或拍摄多种编码格式的图像,例如:联合图像专家组(jointphotographic experts group,JPEG),便携式网络图形(portable network graphics,PNG)等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
终端设备100可以通过音频模块170,扬声器,受话器,麦克风,耳机接口,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块还可以用于对音频信号编码和解码。扬声器用于将音频电信号转换为声音信号。受话器用于将音频电信号转换成声音信号。麦克风用于将声音信号转换为电信号。耳机接口用于连接有线耳机。耳机接口可以是USB接口130,也可以是3.5mm的开放移动终端设备平台(open mobile terminal platform,OMTP)标准接口等其他接口。
传感器模块180可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
陀螺仪传感器可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器还可以用于导航,体感游戏场景。
按键190包括开机键,音量键等。马达191可以产生振动提示。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以兼容外部存储卡。终端设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。
以下,介绍终端设备的软件结构。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以图6所示的终端设备100的软件结构框图为例,示例性说明终端设备100的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将操作系统分为四层,从上至下分别为应用程序层,应用程序框架层,硬件抽象层(hardware abstraction layer,HAL),以及内核层。
为了便于说明,图6中还示出了与软件架构连接的硬件层。
需要说明的是,本申请实施例仅以一种常见的操作系统为例来说明,在其他操作系统中,只要各个功能模块实现的功能和本申请的实施例类似也能实现本申请的方案。
应用程序层可以包括一系列应用程序包。如图6所示,应用程序包可以包括相机,图库,等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图6所示,应用程序框架层可以包括相机服务。相机服务用于连接应用程序层中的相机应用和硬件层的相关硬件。一些实施例中,相机服务可以通过调用硬件接口实现相机应用和硬件层之间的连接。
可以理解地,应用程序框架层还可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。其中,窗口管理器用于管理窗口程序。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。电话管理器用于提供终端设备100的通信功能。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
HAL层位于内核层之上,HAL层可以将硬件层的硬件抽象化,将不同硬件之间的差异隐藏,为上层提供统一的硬件接口。
如图6所示,HAL层包括相机设备、图像处理模块以及存储模块。
相机设备用于将相机服务连接到底层的摄像头驱动以及摄像头。
图像处理模块用于获取图像以及相关数据,并基于图像以及相关数据进行处理。在一些实施例中,图像处理模块可以对图像进行格式转换、内容处理以及编码等操作。
在本申请实施例中,图像处理模块可以按照本申请实施例提供的图像处理方法,根据双摄模块获取的两张图像以及防抖模块的防抖数据确定出虚化图像。
内核层是硬件层和软件之间的层。如图6所示,内核层包含摄像头驱动,摄像头驱动用于控制硬件层的摄像头执行拍摄的动作。
可以理解地,内核层还可以包含显示驱动,音频驱动,传感器驱动等,此处不对这些驱动做过多赘述。
下面结合拍摄的场景,示例性说明终端设备100软件以及硬件的工作流程。
位于应用层的相机应用在终端设备中显示拍摄界面,且拍摄界面中包括拍摄控件的情况下,用户可以在拍摄界面点击拍摄控件。当触摸传感器接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。框架层从内核层获取原始输入事件,可以识别该输入事件所对应的控件为拍摄控件。那么,相机调用框架层相机服务提供的接口。相机服务提供的接口被调用之后,HAL层中的相机设备可以调用内核层的摄像头驱动,摄像头驱动可以驱动双摄模块捕获两张图像。之后,双摄模块通过摄像头驱动将两张图像发送给HAL层的图像处理模块。图像处理模块还可以从防抖模块处获取到防抖数据,防抖数据用于记录防抖模块控制双摄模块中镜片移动的方向以及距离。最后,图像处理模块可以对防抖数据以及两张图像进行处理,得到虚化照片。
其中,在本申请实施例中,用户打开相机应用的操作为第一操作,响应于第一操作,终端设备可以显示拍摄界面,拍摄界面也被称为上述提到的预览界面。
以下,介绍本申请实施例提供的一种图像处理方法。
在同时开启防抖功能以及虚化拍摄功能的场景中,终端设备可以通过本申请提供的图像处理方法拍摄虚化照片。示例性地,终端设备的拍摄配置页面中可以包括有防抖选项以及虚化选项,在防抖选项以及虚化选项均被选中的情况下,表示终端设备同时开启防抖功能以及虚化拍摄功能。
在一些场景中,终端设备处于一种需要同时开启防抖功能以及虚化拍摄功能的拍摄模式时,也可以通过本申请提供的图像处理方法拍摄虚化照片,例如,人像拍摄模式、运动拍摄模式等。在上述示例的模式下拍摄均为一种可能的应用场景,实际应用场景涉及的拍摄模式可以根据实际的拍摄需求确定,此处不对拍摄模式进行限制。
下面结合图7所示的图像处理方法的流程示意图一,介绍本申请实施例提供的一种图像处理方法,该方法由终端设备执行,包括如下步骤:
S701、终端设备获取双摄模块拍摄的双摄图像以及拍摄双摄图像时刻的防抖数据。
如图4所示,双摄模块中包括主摄像头以及辅摄像头,在用户按下快门的情况下,主摄像头以及辅摄像头均拍摄图像,从而得到双摄图像。其中双摄图像包括主摄像头拍摄的主图像以及辅摄像头拍摄的辅图像。
其中,在本申请实施例中,用户按下快门的操作,也就是用户点击拍摄控件的操作,被称为第二操作,用户按下快门的时刻可以为本申请中的第一时刻。
在一些实施例中,由于指令传输时延等技术问题,主摄像头获取主图像的时刻,与辅摄像头获取辅图像的时刻之间可能存在差异。因此,可以将主摄像头获取主图像的时刻与辅摄像头获取辅图像的时刻之间时间差在可接受的误差范围内的情况,视为主摄像头与辅摄像头同时获取图像。例如,在可接受的误差范围为主摄像头获取主图像的时刻±0.15毫秒的情况下,如主摄像头获取主图像的时刻为T0时刻,而辅摄像头获取辅图像的时刻为T0+0.1毫秒,则可以认为主摄像头获取的主图像与辅摄像头获取辅图像为同时获取的,此时,也可以认为主摄像头获取的主图像与辅摄像头获取辅图像是对应的。主摄像头获取的主图像与辅摄像头获取的辅图像被称为一组双摄图像。
如图4所示,由于本申请实施例的防抖模块会根据监测到的终端设备由于抖动发生的位移信息对双摄模块中摄像头的镜片进行移动控制。也就是说,拍摄双摄图像时刻,若双摄模块中镜片的位置发生移动,那么,终端设备需要获取防抖数据,以基于防抖数据以及镜片的原位置确定镜片移动后的位置,如此,可以基于镜片移动后的位置以及双摄图像准确的计算图像的深度信息。
其中,防抖模块可以仅控制双摄模块中的主摄像头的镜片移动,也可以控制双摄模块中的主摄像头的镜片以及辅摄像头的镜片移动。
其中,本申请实施例中在拍摄双摄图像时刻获取的防抖数据可以是本申请中的第一防抖数据。
在一些实施例中,防抖模块对应的硬件结构可以根据实际情况确定。例如,在OIS可以检测终端设备由于抖动发生的位移信息,并根据位移信息控制镜片移动的情况下,防抖模块可以仅包括OIS。又如,在OIS无法检测终端设备由于抖动发生的位移信息,仅可以根据位移信息控制镜片移动的情况下,防抖模块中可以包括OIS以及用于检测终端设备由于抖动发生的位移信息的传感器。再如,在OIS可以检测终端设备由于抖动发生的位移信息,并且可以控制镜片移动,但无法根据位移信息确定如何控制镜片移动的情况下,防抖模块中可以包括OIS以及用于根据位移信息确定如何控制镜片移动的处理器,或者,防抖模块中可以仅包括OIS,并且防抖模块可以配合其他根据位移信息确定如何控制镜片移动的处理器共同实现防抖控制。
S702、终端设备基于防抖数据对双摄模块的标定数据进行补偿,得到补偿后的标定数据。
双摄模块的标定数据用于记录双摄模块中镜片的初始位置。具体地,若双摄模块中仅有主摄像头的镜片可以移动,则标定数据可以仅用于记录主摄像头中镜片的初始位置。若双摄模块中主摄像头以及辅摄像头的镜片均可以移动,则标定数据可以仅用于记录主摄像头中镜片的初始位置。
其中,本申请实施例中,补偿后的标定数据可以为本申请中的第一标定数据,双摄模块中用于记录双摄模块中镜片的初始位置的标定数据可以为本申请中的第二标定数据。
一些示例中,在主摄像头中的镜片可以移动,且辅摄像头中的镜片不可移动的情况下,防抖模块仅可以控制双摄模块中的主摄像头的镜片移动,那么,防抖数据中记录有主摄像头的镜片移动的方向以及距离。终端设备基于防抖数据对双摄模块的标定数据进行补偿,得到补偿后的标定数据,也就是说,终端设备可以基于防抖数据以及用于记录主摄像头中镜片初始位置的标定数据,计算出主摄像头中镜片移动后的位置。
又一些示例中,在主摄像头中的镜片可以移动,且辅摄像头中的镜片也可以移动的情况下,防抖模块可以仅控制双摄模块中的主摄像头的镜片移动、或仅控制辅摄像头的镜片移动,又或可以控制双摄模块中的主摄像头的镜片以及辅摄像头的镜片移动,防抖数据中记录有主摄像头的镜片移动的方向以及距离、辅摄像头的镜片移动的方向以及距离。终端设备基于防抖数据对双摄模块的标定数据进行补偿,得到补偿后的标定数据,也就是说,终端设备可以基于防抖数据、用于记录主摄像头中镜片初始位置以及辅摄像头中镜片初始位置的标定数据,计算出主摄像头中镜片移动后的位置以及辅摄像头中镜片移动后的位置。
S703、终端设备基于补偿后的标定数据以及双摄图像计算双摄图像的深度信息。
S704、终端设备基于深度信息以及双摄图像获取虚化照片。
基于上述实施例可知,补偿后的标定数据表示双摄模块中镜片移动后的位置,因此,终端设备基于补偿后的标定数据以及双摄图像计算双摄图像的深度信息。之后,终端设备可以根据深度信息对双摄模块拍摄的图像进行虚化。上述具体计算可以参看上述关于双摄算法实现虚化的相关技术,此处不作赘述。
在一些实施例中,终端设备根据深度信息对双摄模块中主摄像头拍摄的主图像进行虚化,具体虚化可以参见上述对虚化技术的介绍部分,此处不再赘述。
进一步地,双摄图像中拍摄的两张图像中其中一张作为最终得到的照片,而另一张用于辅助计算图像的深度信息,因此,一般情况下,会将主摄像头拍摄的主图像作为最终得到的照片,并保证主摄像头拍摄的主图像的清晰度高于辅摄像头拍摄的辅图像的清晰度,如此,可以拍摄得到清晰的照片。
其中,本申请实施例中的主摄像头可以为本申请中的第一摄像头,主摄像头拍摄的主图像为本申请中的第一图像,辅摄像头可以为本申请中的第二摄像头,辅摄像头拍摄的辅图像为本申请中的第二图像。
在一些实施例中,终端设备执行S704得到虚化照片后,可以存储该虚化照片,以供用户在终端设备中查看该虚化照片,并且,终端设备可以响应于用户的操作对该虚化照片进行存储、传输、编辑等操作。
其中,本申请实施例中的虚化照片可以是指本申请中的目标图像,在本申请实施例中的双摄图像可以是本申请中的目标双摄图像。
下面结合图8所示的图像处理方法的流程示意图二,介绍本申请实施例提供的一种图像处理方法,该方法由终端设备执行,包括如下步骤:
S801、终端设备将双摄模块输出的多组双摄图像A以及每组双摄图像A的时间戳存储于图像缓冲存储器中。
在用户打开安装于终端设备中的相机应用,并开启背景虚化功能,且终端设备是基于双摄算法实现虚化的情况下,双摄模块开始工作,双摄模块中的主摄像头与辅摄像头开始不断地捕获图像,并按照捕获图像的顺序输出这些图像,我们把这些按照捕获顺序输出的图像称为图像序列。双摄模块输出的图像序列被分别送入预览流处理模块以及数据流处理模块。经过预览流处理模块处理后的图像序列被依次显示于终端设备的显示屏中,为用户提供拍摄过程中的预览画面。而终端设备在用户按下快门的时刻,从经过数据流处理模块处理后的图像序列中选取其中一组双摄图像,并基于该组双摄图像确定出用户拍摄的照片,该组双摄图像的时间戳与用户按下快门时刻对应。也就是说,在拍摄动作结束后,经过预览流处理模块处理后的一组双摄图像,经处理后,以图像文件的格式保存于终端设备中以供用户查看的照片。可以理解地,在上述过程中,仅简单的介绍了拍摄过程中预览流以及数据流的处理,更详细的处理过程可参看相关技术。
在抓拍的场景中,若在用户按下快门的时刻,终端设备确定输入数据流处理模块的图像序列中与在该时刻获取的图像作为拍摄得到的照片,则会导致获取的照片存在不清楚的问题。因此,在用户打开相机应用后,终端设备可以将双摄模块输出的图像序列中多组双摄图像A以及双摄图像A的时间戳存储于图像缓冲存储器中,以便于终端设备从多种双摄图像A中选取合适的双摄图像。
在一些实施例中,终端设备可以包括一个图像缓冲存储器。双摄模块输出的一组双摄图像中包括主摄像头获取的主图像以及辅摄像头获取的辅图像,那么,终端设备可以将主摄像头获取的主图像以及主图像的时间戳、辅摄像头获取的辅图像以及辅图像的时间戳存储于该图像缓冲存储器中。或者,终端设备可以仅将主摄像头获取的主图像、主图像的时间戳以及辅摄像头获取的辅图像存储于该图像缓冲存储器中。
一些示例中,每组双摄图像A的时间戳可以是两个时间戳,即终端设备将每组双摄图像A中每个图像的时间戳存储于图像缓冲存储器中。例如,主图像的获取时刻为0.05ms,辅图像的获取时刻为0.09ms的情况下,则该组双摄图像A的时间戳可以是0.05ms以及0.09ms。之后,终端设备将该双摄图像以及该双摄图像的时间戳0.05ms以及0.09ms存储于图像缓冲存储器中。
终端设备将双摄模块实时输出的双摄图像A以及双摄图像A的时间戳,由于图像缓冲存储器中的存储空间有限,因此,终端设备可以删除图像缓冲存储器中最早存入的双摄图像A以及双摄图像A的时间戳,并将双摄模块最近获取的双摄图像A以及双摄图像A的时间戳覆盖存储至图像缓冲存储器中。
另一些示例中,每组双摄图像A的时间戳可以是一个时间戳。具体地,在可以忽略一组双摄图像A中的主图像与辅图像获取时刻之间的时间差的情况下,例如,每组双摄图像中主图像与辅图像获取时刻之间的时间差在0.05ms之内的情况下,终端设备可以根据这组双摄图像获取到虚化效果较好的虚化照片,那么,可以将主图像的获取时刻作为该组双摄图像的时间戳,以便于后续基于该时间戳确定对应的防抖数据。
又一些实施例中,终端设备的图像缓冲存储器可以包括主图像缓冲存储器以及辅图像缓冲存储器,如图9所示。在该实施例中,主摄像头输出的图像序列可以被存储于主图像缓冲存储器中,且主摄像头输出的每个图像的时间戳也可以被存储于主图像缓冲存储器中。辅摄像头输出的图像序列可以被存储于辅图像缓冲存储器中,且辅摄像头输出的每个图像的时间戳也可以被存储于辅图像缓冲存储器中。
一些示例中,终端设备可以先从主图像缓冲存储器中获取一张主图像以及主图像的时间戳,之后,再基于主图像的时间戳从辅图像缓冲存储器中确定出与该主图像对应的辅图像,并将该主图像与辅图像作为一组双摄图像。
S802、终端设备将防抖模块输出的多个防抖数据A以及每个防抖数据A的时间戳存储于防抖数据缓冲存储器中。
防抖数据用于记录防抖模块控制双摄模块中镜片移动的方向以及距离。在相机应用运行且开启防抖功能的情况下,防抖模块开始输出防抖数据。为了保证根据双摄模块输出的双摄图像能够准确的计算出图像的深度信息,终端设备可以先确定出双摄模块输出双摄图像时,双摄模块中每个摄像头中镜片的位置。因此,终端设备可以将防抖模块输出的多个防抖数据A以及每个防抖数据A的时间戳存储于防抖数据缓冲存储器中。
在抓拍的场景中,可能存在用户频繁按下快门的情况,用户每一次按下快门,终端设备可以获取一次双摄图像以及防抖数据。如上述步骤,终端设备将多个双摄图像A以及双摄图像中每个图像的时间戳存储于图像缓冲存储器中,并且,将多个防抖数据A以及每个防抖数据A的时间戳存储于防抖数据缓冲存储器中。可以保证终端设备在用户每一次按下快门时,均能够从图像缓冲存储器中获取到对应的双摄图像,并从防抖数据缓冲存储器中获取防抖数据,避免存在双摄图像以及防抖数据失效,且无法对图像进行虚化的情况。
在一些实施例中,防抖数据缓冲存储器可以包括多个缓冲区,每个缓冲区独立。在用户没有按下快门的情况下,终端设备同时将多个防抖数据分别存储至多个缓冲区,以避免其中一个缓冲区存在问题的情况下,另外一个缓冲区可以存储防抖数据,保证防抖数据的准确性。
一些示例中,在用户按下快门的情况下,终端设备停止向其中一个缓冲区存储防抖数据,并从该缓冲区中获取相应的防抖数据,此外,终端设备继续向其他缓冲区中存储防抖数据。例如,在用户按下快门的情况下,终端设备可以从多个缓冲区中选择一个作为读取对象,并将该缓冲区配置为读取模式,仅供终端设备从该缓冲区中读取数据,而其他的缓冲区可以继续存储防抖数据。
一些示例中,以防抖数据缓冲存储器包括缓冲区1以及缓冲区2为例,如图10所示,在用户未按下快门的情况下,防抖模块输出的防抖数据同时被存储于缓冲区1以及缓冲区2中,此时,若两个缓冲区均可以正常存储防抖数据。缓冲区1以及缓冲区2存储的防抖数据应当相同。
其中,缓冲区中的存储空间有限,终端设备可以将防抖模块最近输出的防抖数据覆盖防抖模块中最早存储的防抖数据,保证缓冲区中的数据实时更新。
进一步地,在用户第一次按下快门的情况下,终端设备中相应的双摄补偿模块响应于用户按下快门的操作,开始从缓冲区1中读取防抖数据,防抖模块继续向缓冲区2中存储防抖数据。并且,为了避免缓冲区1中防抖数据被防抖模块最近输出的防抖数据覆盖,在双摄补充模块从缓冲区1中读取防抖数据的时刻,防抖模块停止向缓冲区1存储新的防抖数据。
进一步地,在用户在一定时间内再次按下快门,并且此时双摄补偿模块已经从缓冲区1中读取到防抖数据,并且,防抖模块继续向缓冲区1中存储新的防抖数据的情况下,终端设备中相应的双摄补偿模块响应于用户按下快门的操作,开始从缓冲区2中读取防抖数据,防抖模块继续向缓冲区1中存储防抖数据。从而避免由于缓冲区1之前未及时存储最近输出的防抖数据,导致终端设备无法从缓冲区1中读取到与本次按下快门时刻对应的防抖数据。并且,为了避免缓冲区2中防抖数据被新的防抖数据覆盖,防抖模块停止向缓冲区2存储新的防抖数据。
可以理解地,若在上述实施例之后,用户在一定时间内又再次按下快门,那么双摄补偿模块可以从缓冲区1中读取防抖数据,防抖模块继续向缓冲区2中存储防抖数据,通过上述的乒乓机制,可以保证防抖模块持续且稳定将防抖数据提供给后续的图像处理流程。
需要说明的是,此处双摄补偿模块按照缓冲区排列的顺序选择缓冲区读取防抖数据,实际也可以通过其他方式选择换缓冲区以读取防抖数据。
在上述S801以及S802中,由于双摄图像以及双摄图像的时间戳、防抖数据以及每个防抖数据的时间戳均存储于对应的缓冲存储器中,可以在用户短时间内多次按下快门的场景下,缓解双摄图像以及防抖数据的读取压力,以保证后续图像处理过程能够获取到每一次快门被按下时对应的双摄图像以及防抖数据。
通过上述S801以及S802将双摄图像以及防抖数据存储于相应的缓冲存储器中之后,终端设备响应于用户按下快门的操作,可以执行下述S803:
S803、终端设备从图像缓冲存储器以及防抖数据缓冲存储器中获取与用户按下快门时刻对应时间段内的多组双摄图像B以及与每组双摄图像B对应的多个防抖数据B。
与用户按下快门时刻对应是指,多组双摄图像B的时间戳与用户按下快门时刻之间的时间差处于预设范围内。换个说法也就是,与用户按下快门时刻对应时间段内的多组双摄图像B以及多个防抖数据B。例如,若与用户按下快门时刻对应时间段为用户按下快门时刻前0.15毫秒以及后0.15毫秒内,如图11所示,与T0时刻对应有双摄图像1以及防抖数据1,与T1时刻对应有防抖数据2,与T2时刻对应有双摄图像2,与T3时刻对应有双摄图像3以及防抖数据3,与T4时刻对应没有双摄图像以及防抖数据,与T5时刻对应有双摄图像4以及防抖数据4。若用户在T3时刻按下快门,T3-0.15ms为处于TO-T1间的某个时刻,T3+0.15ms为处于T5后的某个时刻,那么,终端设备可以选择与T1时刻对应的防抖数据2,与T2时刻对应的双摄图像2,与T3时刻对应的双摄图像3以及防抖数据3,与T5时刻对应的双摄图像4以及防抖数据4,作为多组双摄图像B以及多个防抖数据B。可以理解地,用户按下快门的时刻不一定与获取双摄图像以及防抖数据的时间戳相同,如上述例子的图11,用户按下快门的时刻也可以是T3+0.05毫秒。
可以理解地,上述实施例仅说明了一种情况,与用户按下快门时刻对应时间段还可以是从用户按下快门时刻开始之后的一段时间,也可以是用户按下快门时刻之前的一段时间,或者,也可以是用户按下快门时刻开始之后的一段较长的时间以及用户按下快门时刻之前的一段较短的时间。
需要说明的是,防抖数据的最大采集频率大于双摄图像的最大采集频率,因此,一个单位时间内最多能采集到的防抖数据的数据量大于一个单位时间内最多能采集到的双摄图像的数据量。
在一些实施例中,一组双摄图像可以对应有多个防抖数据。具体地,终端设备可以先获取多个双摄图像B,针对其中每个双摄图像B,再获取与该双摄图像B对应的多个防抖数据B。例如,终端设备获取五组双摄图像B,且五组双摄图像B的时间戳分别为:Timestamp1、Timestamp2、Timestamp3、Timestamp4、Timestamp5。之后,终端设备基于五个时间戳,在多个防抖数据A的时间戳中分别找到与上述时间戳最近的时间戳Timestamp_OIS1、Timestamp_OIS2、Timestamp_OIS3、Timestamp_OIS4、Timestamp_OIS5。之后,终端设备基于双摄模块的曝光时间或预设的时间长度,确定双摄图像在曝光时间内所对应的防抖数据B所在的时间戳范围。在曝光时间为2t ms的情况下,t为已知数,则每一组双摄图像对应的防抖数据B的时间戳的范围分别为:[Timestamp_OIS1-t ms Timestamp_OIS1+t ms]、[Timestamp_OIS2-t ms Timestamp_OIS2+t ms]、[Timestamp_OIS3-t ms Timestamp_OIS3+t ms]、[Timestamp_OIS4-t ms Timestamp_OIS4+t ms]、[Timestamp_OIS5-t msTimestamp_OIS5+t ms]。也就是说,处于[Timestamp_OIS1-t ms Timestamp_OIS1+t ms]范围内的防抖数据B,与时间戳为Timestamp1的一组双摄图像B对应。
一些示例中,一组双摄图像多个防抖数据。如图12所示,双摄图像B1与从防抖数据B1至防抖数据B17共17个防抖数据B对应,双摄图像B2与从防抖数据B18至防抖数据B34共17个防抖数据B对应。
又一些实施例中,由于防抖模块只有在出现抖动时才会输出防抖数据,因此,存在不同双摄图像B对应的防抖数据B的数据量不同的情况。例如,如图12所示,双摄图像B1以及双摄图像B2均与17个防抖数据B对应,而双摄图像B3与从防抖数据B35至防抖数据B40共6个防抖数据B对应,双摄图像B4与从防抖数据B41至防抖数据B43共3个防抖数据B对应。
再一些实施例中,由于防抖模块只有在出现抖动时才会输出防抖数据,并且两个双摄图像的时间戳之间存在差距较大或差距较小的情况,因此,存在两个连续获取的双摄图像B对应的防抖数据B之间存在防抖数据不连续的情况。例如,如图12所示,双摄图像B4与从防抖数据B41至防抖数据B43共3个防抖数据B对应,而双摄图像B5与防抖数据B60以及防抖数据B61对应。
通过S803,终端设备可以获取到多组双摄图像B以及多个防抖数据B,以及每个双摄图像B的时间戳、以及每个防抖数据B的时间戳,可选地,终端设备可以执行S804,以从双摄图像B以及多个防抖数据B中筛选出无效的数据,以保证数据的准确性。
在一些实施例中,终端设备在S803中选出的多组双摄图像B以及多个防抖数据B,可能存在无效的双摄图像B和/或防抖数据B,因此,终端设备可以通过以下S804,确定出有效的数据。
S804、终端设备从多组双摄图像B以及多个防抖数据B中确定出有效的多组双摄图像C以及多个防抖数据C。
终端设备可以基于双摄图像B中的图像内容确定是否为有效的双摄图像C。
在一些实施例中,终端设备可以对双摄图像B中的主图像与辅图像进行识别和对比,计算主图像与辅图像之间的相似度,若主图像与辅图像之间的相似度小于预设相似度,则说明主图像与辅图像可能不是同一个时刻或者相近时刻拍摄得到的,那么可以将该双摄图像B视为无效的双摄图像B。
又一些实施例中,终端设备可以对双摄图像B中的主图像与辅图像的清晰度进行识别,若主图像与辅图像的清晰度均小于预设清晰度,则说明主图像与辅图像可能存在不清楚的问题,那么可以将该双摄图像B视为无效的双摄图像B。
终端设备可以基于防抖数据B中的数据内容确定是否为有效的防抖数据C。
在一些实施例中,终端设备可以对防抖数据B中的移动方向以及移动距离判断是否为有效的防抖数据B。
一些示例中,终端设备可以将移动方向与镜片可移动方向不同的防抖数据B作为无效的防抖数据B。例如,在x轴为横轴,y为纵轴的平面直角坐标系下,镜片只能在该平面直角坐标系内移动,若防抖数据B中出现z方向的数据,则说明该防抖数据B为无效的防抖数据。
一些示例中,终端设备可以将移动距离大于镜片可移动最大距离的防抖数据B作为无效的防抖数据B。例如,在x轴为横轴,y为纵轴的平面直角坐标系下,镜片只能沿x轴方向以及y轴方向移动,且每个方向移动的最大距离为5个单位长度。若防抖数据B中出现沿某个方向,如x轴方向移动6个单位长度,则说明该防抖数据B为无效的防抖数据B。
又一些实施例中,终端设备还可以采用滤波降噪的方式确定出有效的防抖数据C。
一些示例中,在一组双摄图像的曝光时间内或一组双摄图像中主图像的曝光时间内,从多种窗函数滤波器中选择其中一种方式进行滤波,如高斯滤波。
又一些示例中,在一组双摄图像的曝光时间内或一组双摄图像中主图像的曝光时间内,将滤波窗口在防抖数据B的时间域上进行平滑移动,以选出每个滤波窗口对应的防抖数据B。如图13所示,共有五个防抖数据B,分别为:B1、B2、B3、B4、B5,一个滤波窗口可以有三个防抖数据B,那么,在时间域上平滑的过程中,终端设备可以基于B1、B2、B3确定B1’,基于B2、B3、B4确定B2’,基于B3、B4、B5确定B3’。其中,终端设备可以计算B1、B2、B3的平均值作为B1’,也可以计算B1、B2、B3的最大值作为B1’,此处不限制具体的计算方式。最终,终端设备确定出B1’、B2’、B3’为滤波后的防抖数据B,即确定出有效的防抖数据C。
再一些示例中,终端设备可以采用多种滤波方式多次对防抖数据B进行滤波,以确定出有效的防抖数据C。例如,终端设备可以先利用高斯滤波的方式从防抖数据B中确定出防抖数据B’,之后,再将滤波窗口在防抖数据B’的时间域上进行平滑移动,以选出每个滤波窗口对应的防抖数据B”,即确定出有效的防抖数据C。
可以理解地,此处还可以使用其他方式对防抖数据B进行滤波,以选出防抖数据C。如此,通过滤波,可以减少噪声对防抖数据的影响,提高后续基于防抖数据计算深度信息的准确性。
在终端设备从多组双摄图像B以及多个防抖数据B中确定出有效的多组双摄图像C以及多个防抖数据C之后,终端设备可以将无效的双摄图像B以及无效的防抖数据B配置上无效标志位,或者,为其对应的标志位赋表示无效的值。例如,为无效的防抖数据B对应的标志位赋0值,表示该防抖数据无效,为有效的防抖数据B对应的标志位赋1值,表示该防抖数据有效。
进一步地,终端设备可以基于防抖数据B是否带有表示无效的标志位来识别有效的防抖数据C。
在上述实施例中,在终端设备执行S803,但不执行S804的情况下,双摄图像B可以为本申请中的多组双摄图像,防抖数据B可以为本申请中的第二防抖数据。在终端设备执行S803以及S804的情况下,防抖数据C可以为本申请中的第二防抖数据。
S805、终端设备从多组双摄图像C中确定目标双摄图像D,并确定目标双摄图像D的时间戳a。
当用户按下快门时,可以根据时间戳从图像缓冲存储器中存储的多组双摄图像A中选取与用户按下快门时刻对应的多组双摄图像B。其中,与用户按下快门时刻对应是指,所选的多组双摄图像B的时间戳与用户按下快门时刻之间的时间差处于预设范围内。如此,终端设备可以从选出的多组双摄图像B中确定出有效的双摄图像C,之后,再从有效的双摄图像C中选取其中一组双摄图像作为目标双摄图像D,以保证最终拍摄得到的照片的清晰度。
在本申请实施例中的目标双摄图像D可以是本申请中的目标双摄图像。
目标双摄图像D经过处理后,为最终确定的需要呈现给用户,并存储于终端设备中的照片。在一些实施例中,终端设备可以从多组双摄图像C中确定出最清晰的图像作为目标双摄图像D,或者,终端设备也可以从多组双摄图像C中确定出最精彩的图像作为目标双摄图像D。其中,最精彩的图像可以定义为终端设备确定的清晰度高于一定值,且图像中包括人脸最多的双摄图像。具体地,最精彩的图像可以根据用户的需求或实际拍摄的场景确定,此处不做过多限制。
此外,终端设备从多组双摄图像C中确定目标双摄图像D后,可以确定出目标双摄图像D的时间戳,或目标双摄图像D中主图像的时间戳为时间戳a,以保证时间戳a的准确性。
可选地,终端设备可以执行S806,以保证精准的确定与时间戳对应的防抖数据。
S806、终端设备从多个防抖数据C中确定与时间戳a对应的多个防抖数据D。
在上述S803相关的实施例中已知,终端设备可以基于双摄图像B的时间戳确定对应的防抖数据B。在一些场景中,在S803中终端设备基于双摄图像B的时间戳确定出的防抖数据B的数据量大于预设数据量,或者,在S803中终端设备确定出防抖数据B之后,终端设备执行S804确定出有效的防抖数据C的数据量大于预设数据量,那么,终端设备可以执行S806,以保证能够准确的确定刚出与时间戳a对应的多个防抖数据D。
在S803中终端设备基于双摄图像B的时间戳确定出的对应的防抖数据B的数据量小于预设数据量,或者,在S803中终端设备确定出防抖数据B之后,终端设备执行S804确定出有效的防抖数据C的数据量小于预设数据量,那么,终端设备可以执行S806也可以不执行S806。
在上述实施例中,在终端设备执行S806的情况下,与时间戳a对应的多个防抖数据D可以为本申请中的第三防抖数据。
可选地,终端设备执行S806得到多个防抖数据D的情况下,可以执行S807:
S807、终端设备基于多个防抖数据D插值得到与时间戳a的防抖数据E。
由于防抖数据的采样频率与双摄图像的采样频率不同,一般情况下防抖数据的采样频率大于双摄图像的采样频率,因此,防抖数据的生成时刻与双摄图像的生成时刻无法完全保持相同,也就是说,时间戳a不存在防抖数据D的可能性较大。基于此,终端设备可以通过时间戳与时间戳a之间的时间差处于预设时间差范围内的防抖数据D,差值得到与时间戳a的防抖数据E。其中,与时间戳a的防抖数据E是指,防抖数据E的获取时刻为时间戳a。
如图14所示,终端设备在T0时刻获取到双摄图像1以及防抖数据1,在T1时刻获取到防抖数据2,在T2时刻获取到双摄图像2,在T3时刻获取到防抖数据3。终端设备可以基于防抖数据2以及防抖数据3差值得到防抖数据4,防抖数据4与T2时刻对应。如此,终端设备可以准确的获取与双摄图像2获取时刻T2的防抖数据4,之后基于防抖数据4对双摄图像2进行虚化,可以有效的提高虚化效果。
在一些实施例中,如图14中的防抖数据2以及防抖数据3是终端设备执行S806得到的两个防抖数据D,且防抖数据2以及防抖数据3的时间戳与双摄图像2的时间戳之间的时间间隔小于预设时间间隔,则终端设备可以使用interpolation(防抖数据2,T1,防抖数据3,T3,T2)形式的函数,获得T2时刻的防抖数据4。
其中,终端设备采用的插值方式还可以是线性插值或者其他方式。例如,终端设备也可以使用更多数量的防抖数据进行插值,如使用与T2时刻前最近的两个防抖数据以及T2时刻之后最近的两个防抖数据,使用Bicubic差值算法获得T2时刻的防抖数据。对此,本申请不作赘述,可参见相关技术。
S808、终端设备基于防抖数据E对双摄模块的双摄标定数据进行补偿,得到新的双摄标定数据。
双摄标定数据用于记录双摄模块中可移动镜片的初始位置,而防抖数据是记录防抖模块控制双摄模块中镜片移动的方向以及距离,因此,终端设备基于防抖数据对双摄模块的双摄标定数据进行补偿,得到新的双摄标定数据,也就是双摄模块中镜片移动后的位置。
在一些实施例中,防抖模块推动双摄模块中主镜头的镜片进行垂直于光轴的X和Y方向的平移,对应防抖数据为(x_offset_ois,y_offset_ois),其中,x_offset_ois表示控制主镜头的镜片在X轴方向的移动方向以及距离,y_offset_ois表示控制主镜头的镜片在Y轴方向的移动方向以及距离。双摄模块的双摄标定数据为(dual_cam_x_offset,dual_cam_y_offset),那么终端设备在执行S808后,得到的新的双摄标定数据为(dual_cam_x_offset_new,dual_cam_y_offset_new)。其中,dual_cam_x_offset_new=dual_cam_x_offset+x_offset_ois,dual_cam_y_offset_new=dual_cam_y_offset+y_offset_ois。
在上述实施例中,在终端设备执行S806,并且不执行S807以及S808的情况下,本申请实施例中的防抖数据D可以是本申请中的第一防抖数据。在终端设备执行S807以及S808,或者执行S806-S808的情况下,本申请实施例中的防抖数据E可以是本申请中的第一防抖数据。
S809、终端设备基于新的双摄标定数据以及目标双摄图像D计算深度信息。
如图15所示,终端设备的深度计算模块可以基于新的双摄标定数据以及目标双摄图像D中的主图像以及辅图像计算出深度信息,具体可参见相关技术中双目深度视差和深度计算的方式进行计算,此处不作赘述。
终端设备计算出深度信息之后,可以执行S810以虚化主图像:
S810、终端设备基于深度信息虚化目标双摄图像D中的主图像。
终端设备可以将目标双摄图像D中的主图像中深度处于预设深度范围内的区域设置为清晰的,而未处于预设深度范围内的区域设置为模糊的,从而得到如图2所示的虚化图像。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在上述终端设备上运行时,使得该终端设备执行上述方法实施例中的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,包括计算机程序,当计算机程序在终端设备上运行时,使得终端设备执行上述方法实施例中的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (11)

1.一种图像处理方法,其特征在于,应用于包括第一摄像头和第二摄像头的终端设备,所述方法包括:
响应于用户打开相机应用的第一操作,显示所述相机应用的预览界面,所述预览界面包括拍摄控件,所述相机应用开启了背景虚化功能和防抖功能;
响应于用户对所述拍摄控件的第二操作,存储目标图像;
其中,所述目标图像为基于第一图像的深度信息对所述第一图像进行背景虚化处理得到的图像,所述深度信息基于第一标定数据,所述第一图像和第二图像确定,所述第一图像为所述第一摄像头在第一时刻拍摄到的图像,所述第二图像为所述第二摄像头在所述第一时刻拍摄到的图像,所述第一标定数据用于指示所述第一时刻所述第一摄像头和所述第二摄像头的位姿关系。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一时刻对应的第一防抖数据,所述第一防抖数据为在所述第一时刻移动目标摄像头的镜片的移动参数,所述目标摄像头包括所述第一摄像头和/或所述第二摄像头;
基于所述第一防抖数据和第二标定数据,确定所述第一标定数据;所述第二标定数据用于指示所述第一摄像头和所述第二摄像头的初始位姿关系。
3.根据权利要求2所述的方法,其特征在于,所述获取所述第一时刻的第一防抖数据,包括:
确定目标双摄图像,所述目标双摄图像为所述终端设备在所述第一时刻采集到的双摄图像,所述目标双摄图像包括所述第一图像和所述第二图像;
基于所述目标双摄图像的时间戳,获取所述第一防抖数据;所述第一防抖数据的时间戳与所述目标双摄图像的时间戳的时间差处于预设时间范围内。
4.根据权利要求3所述的方法,其特征在于,所述确定目标双摄图像,包括:
获取多组双摄图像,所述多组双摄图像中的每一组双摄图像包括同一时刻所述第一摄像头拍摄到的图像和所述第二摄像头拍摄到的图像,所述多组双摄图像中每组双摄图像对应的时间戳与所述第一时刻的时间差处于预设时间范围内;
从所述多组双摄图像中确定所述目标双摄图像。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标双摄图像的时间戳,获取所述第一防抖数据,包括:
获取与所述多组双摄图像中每组双摄图像对应的第二防抖数据;
基于所述目标双摄图像的时间戳和多个所述第二防抖数据确定所述第一防抖数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述目标双摄图像的时间戳和多个所述第二防抖数据确定所述第一防抖数据,包括:
基于所述目标双摄图像的时间戳,从多个所述第二防抖数据中确定与所述目标双摄图像的时间戳对应的第三防抖数据;
在与所述第三防抖数据存在多个的情况下,对多个所述第三防抖数据进行插值处理,以获得所述第一防抖数据。
7.根据权利要求5或6所述的方法,其特征在于,所述多组双摄图像为双摄图像为对应时间戳与所述第一时刻的时间差处于预设时间范围内的双摄图像中有效的双摄图像;多个所述第二防抖数据为与所述多组双摄图像中每组双摄图像对应的防抖数据中有效的防抖数据。
8.根据权利要求5-7中任一项所述的方法,其特征在于,所述终端设备包括存储器,所述存储器包括至少两个存储区域;
所述获取与所述多组双摄图像中每组双摄图像对应的第二防抖数据,包括:
从所述存储器的第一存储区域读取所述第二防抖数据;
其中,在从所述第一存储区域读取防抖数据的情况下,所述终端设备将需存储的防抖数据存储至第二存储区域,所述第一存储区域为所述至少两个存储区域中的任意一个存储区域,所述第二存储区域为所述至少两个存储区域中除所述第一存储区域外的存储区域。
9.一种终端设备,其特征在于,所述终端设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述显示屏用于显示所述处理器生成的图像,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,使得所述终端设备执行如权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1-8中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN202410046076.1A 2024-01-10 2024-01-10 一种图像处理方法、终端设备、计算机可读存储介质 Pending CN120343400A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410046076.1A CN120343400A (zh) 2024-01-10 2024-01-10 一种图像处理方法、终端设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410046076.1A CN120343400A (zh) 2024-01-10 2024-01-10 一种图像处理方法、终端设备、计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN120343400A true CN120343400A (zh) 2025-07-18

Family

ID=96363154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410046076.1A Pending CN120343400A (zh) 2024-01-10 2024-01-10 一种图像处理方法、终端设备、计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN120343400A (zh)

Similar Documents

Publication Publication Date Title
US11831977B2 (en) Photographing and processing method and electronic device
US11669242B2 (en) Screenshot method and electronic device
US11949978B2 (en) Image content removal method and related apparatus
EP3961358B1 (en) False touch prevention method for curved screen, and eletronic device
CN112614057B (zh) 一种图像虚化处理方法及电子设备
US12096134B2 (en) Big aperture blurring method based on dual cameras and TOF
WO2020186969A1 (zh) 一种多路录像方法及设备
WO2020073959A1 (zh) 图像捕捉方法及电子设备
CN114365476A (zh) 一种拍摄方法及设备
CN115967851B (zh) 快速拍照方法、电子设备及计算机可读存储介质
US12301988B2 (en) Focusing method and electronic device
CN113934330B (zh) 一种截屏方法及电子设备
CN113741681B (zh) 一种图像校正方法与电子设备
CN112085647B (zh) 一种人脸校正方法及电子设备
CN111385514B (zh) 人像处理方法和装置以及终端
CN114449151B (zh) 一种图像处理方法及相关装置
WO2022033344A1 (zh) 视频防抖方法、终端设备和计算机可读存储介质
CN115150542B (zh) 一种视频防抖方法及相关设备
CN113781548B (zh) 多设备的位姿测量方法、电子设备及系统
CN114257737B (zh) 一种摄像模式切换方法以及相关设备
EP4567735A1 (en) Image processing method and electronic device
CN116029951B (zh) 图像处理方法与电子设备
CN120343400A (zh) 一种图像处理方法、终端设备、计算机可读存储介质
CN114979458B (zh) 一种图像的拍摄方法及电子设备
CN117593236A (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