CN117278850A - 一种拍摄方法及电子设备 - Google Patents
一种拍摄方法及电子设备 Download PDFInfo
- Publication number
- CN117278850A CN117278850A CN202311413848.2A CN202311413848A CN117278850A CN 117278850 A CN117278850 A CN 117278850A CN 202311413848 A CN202311413848 A CN 202311413848A CN 117278850 A CN117278850 A CN 117278850A
- Authority
- CN
- China
- Prior art keywords
- camera
- zoom
- image
- instruction
- user
- 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
- 238000000034 method Methods 0.000 title claims abstract description 148
- 238000003860 storage Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 238000005520 cutting process Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 163
- 230000008569 process Effects 0.000 description 66
- 230000004044 response Effects 0.000 description 66
- 230000006870 function Effects 0.000 description 37
- 238000007781 pre-processing Methods 0.000 description 25
- 238000003825 pressing Methods 0.000 description 22
- 230000001960 triggered effect Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 238000007726 management method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 238000010295 mobile communication Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000009966 trimming Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000006641 stabilisation Effects 0.000 description 3
- 238000011105 stabilization Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000004131 Bayer process Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005057 finger movement Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/67—Focus control based on electronic image sensor signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
- H04M1/72439—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for image or video messaging
-
- 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
- H04N23/631—Graphical user interfaces [GUI] specially adapted for controlling image capture or setting capture parameters
- H04N23/632—Graphical 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Studio Devices (AREA)
Abstract
本公开提供一种拍摄方法及电子设备,涉及终端技术领域,可在用户使用相机应用的变焦功能时,避免卡顿现象的出现,提高用户使用体验。该方法包括:显示相机应用的预览界面,预览界面包括第一摄像头采集的第一图像,第二摄像头处于未上电状态;检测到用户的预变焦操作,控制第二摄像头处于上电状态;检测到用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;检测到用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像;第三图像为第二变焦操作对应的变焦图像;第二时刻为第二变焦操作的触发时刻,第二时刻处于第一时刻之后;第二数值处在第二摄像头对应的第二变焦范围内。
Description
技术领域
本公开涉及终端技术领域,尤其涉及一种拍摄方法及电子设备。
背景技术
当用户使用电子设备中的相机应用的变焦(即zoom)功能时,电子设备中的物理镜头可能需要切换。若需要切换,电子设备会触发相机驱动对新的物理镜头执行初始化、配置等操作,以确保新的物理镜头能够正常工作。
由于上述初始化、配置等操作都需要通过I2C物理总线(Inter-IntegratedCircuit Bus ,I2C Bus)写入到新的物理镜头的寄存器中,而I2C物理总线的传输速率较慢,所以上述过程需要一定时间来完成。这会导致用户在使用zoom功能对预览图像进行缩放时出现卡顿,影响了用户体验。
发明内容
本公开提供一种拍摄方法及电子设备,可在用户使用相机应用的zoom功能时,避免卡顿现象的出现,提高缩放图像输出的流畅度和用户的使用体验。
为达到上述目的,本公开采用如下技术方案:
第一方面,本公开提供一种拍摄方法,应用于电子设备,包括:显示相机应用的预览界面,预览界面包括第一摄像头采集的第一图像,第二摄像头处于未上电状态;检测到用户的预变焦操作,控制第二摄像头处于上电状态;检测到用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;第二图像为第一变焦操作对应的变焦图像;第一时刻为第一变焦操作的触发时刻;第一数值处在第一摄像头对应的第一变焦范围内;检测到用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像;第三图像为第二变焦操作对应的变焦图像;第二时刻为第二变焦操作的触发时刻,第二时刻处于第一时刻之后;第二数值在第二摄像头对应的第二变焦范围内。
基于第一方面的拍摄方法,预览界面包括第一摄像头采集的第一图像,说明第一摄像头处于上电状态。当检测到用户的预变焦操作后,说明用户具有触发变焦操作的可能。并且当变焦操作被触发时,电子设备有可能需要切换摄像头,以适应由于变焦操作带来的变焦倍数的变化。所以,当检测到用户的预变焦操作后,可以控制处于未上电状态的第二摄像头处于上电状态。这样,当用户触发变焦操作时,可以直接利用与变焦操作匹配的摄像头采集图像,并显示图像。相较于相关技术中在检测到变焦操作后,若确定需要切换摄像头,才控制摄像头上电的这种处理方式,本公开不会出现卡顿现象。也能提高了变焦图像(即第二图像和第三图像)输出的流畅度和用户的使用体验。
结合第一方面,另一种可能的实现方式中,响应于用户的预变焦操作,控制第二摄像头处于上电状态。
结合第一方面,另一种可能的实现方式中,基于用户的预变焦操作,控制第二摄像头处于上电状态。
结合第一方面,另一种可能的实现方式中,在检测到用户的预变焦操作的情况下,控制第二摄像头处于上电状态。
结合第一方面,另一种可能的实现方式中,响应于用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;响应于用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像。
结合第一方面,另一种可能的实现方式中,基于用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;基于用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像。
结合第一方面,另一种可能的实现方式中,在检测到用户的第一变焦操作的情况下,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;在检测到用户的第二变焦操作的情况下,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像。
结合第一方面,另一种可能的实现方式中,变焦倍数为第二数值,显示第二摄像头采集的第三图像,包括:基于第二数值处于第二变焦范围内,显示第三图像。提供一种基于变焦范围确定显示图像的方式。
结合第一方面,另一种可能的实现方式中,基于第二数值处于第二变焦范围内,显示第三图像,包括:基于第二数值处于第二变焦范围内,将第一摄像头切换到第二摄像头,利用第二摄像头获取第三图像,并显示第三图像。基于该方案,可以利用第二数值对应的变焦范围,来确定与第二数值匹配的摄像头。从而充分发挥每个摄像头的拍摄优势,使拍摄的图像更符合用户需求。
结合第一方面,另一种可能的实现方式中,在检测到用户的预变焦操作,第二摄像头处于上电状态之后,方法还包括:向第二摄像头的寄存器写入数据。基于该方案,提供一种对第二摄像头执行初始化操作的方式,例如,向第二摄像头的寄存器写入数据。
结合第一方面,另一种可能的实现方式中,检测到用户的预变焦操作,控制第二摄像头处于上电状态,包括:检测到用户的预变焦操作,控制待拍摄摄像头处于上电状态,并向待拍摄摄像头的寄存器写入数据,待拍摄摄像头包括电子设备中所有未上电的摄像头。
基于该方案,若电子设备包括多个摄像头,在检测到用户的预变焦操作后,可以控制电子设备中所有未上电的摄像头都处于上电状态,且所有未上电的摄像头完成初始化(即向待拍摄摄像头的寄存器写入数据)。这样,当用户触发的变焦操作后,不论需要哪个摄像头进行拍摄,都可以立即调用相应的摄像头。不需要等待该摄像头上电和初始化,避免卡顿现象的出现。
结合第一方面,另一种可能的实现方式中,基于第二数值处于第二变焦范围,包括:获取配置文件,配置文件包括不同摄像头对应的变焦范围:基于配置文件,确定第二数值处于第二变焦范围内。提供一种利用配置文件中不同摄像头对应的变焦范围,确定与变焦倍数匹配的摄像头的方案。
结合第一方面,另一种可能的实现方式中,在利用第二摄像头采集第三图像之前,方法还包括:控制第二摄像头执行配置操作。在采集图像之前,还需要对第二摄像头进行配置,从而使第二摄像头拍摄的图像更符合用户需求。
结合第一方面,另一种可能的实现方式中,显示第一摄像头采集的第二图像,方法包括:获取配置文件,配置文件包括不同摄像头对应的变焦范围:基于配置文件,确定第一数据处于第一变焦范围内;利用第一摄像头获取待处理图像,对待处理图像进行裁切放大,得到第二图像,并显示第二图像。基于该方案,在确定出与变焦倍数匹配的摄像头之后,由于摄像头未切换,所以当摄像头采集到图像后,还需要按照变焦倍数对图像进行进一步处理(例如,裁切放大)。这样,得到的图像更符合用户期待。
结合第一方面,另一种可能的实现方式中,预变焦操作为双指在预览界面触摸的操作,或者单指在预览界面长按的操作。
第二方面,本公开实施例提供一种拍摄装置,该拍摄装置可以应用于电子设备,用于实现上述第一方面中的方法。该拍摄装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,例如,显示模块和控制模块等。
其中,显示模块,被配置为显示相机应用的预览界面,预览界面包括第一摄像头采集的第一图像,第二摄像头处于未上电状态;检测到用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;第二图像为第一变焦操作对应的变焦图像;第一时刻为第一变焦操作的触发时刻;第一数值处在第一摄像头对应的第一变焦范围内;检测到用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像;第三图像为第二变焦操作对应的变焦图像;第二时刻为第二变焦操作的触发时刻,第二时刻处于第一时刻之后;第二数值处在第二摄像头对应的第二变焦范围内。
控制模块,被配置为检测到用户的预变焦操作,控制第二摄像头处于上电状态。
结合第二方面,在一种可能的实现方式中,显示模块,还被配置为基于第二数值处于第二变焦范围内,显示第三图像。
结合第二方面,在一种可能的实现方式中,显示模块,还被配置为基于第二数值处于第二变焦范围内,将第一摄像头切换到第二摄像头,利用第二摄像头获取第三图像,并显示第三图像。
结合第二方面,在一种可能的实现方式中,控制模块,还被配置为向第二摄像头的寄存器写入数据。
结合第二方面,在一种可能的实现方式中,控制模块,还被配置为检测到用户的预变焦操作,控制待拍摄摄像头处于上电状态,并向待拍摄摄像头的寄存器写入数据,待拍摄摄像头包括电子设备中所有未上电的摄像头。
结合第二方面,在一种可能的实现方式中,该拍摄装置还包括获取模块和确定模块。获取模块,被配置为获取配置文件,配置文件包括不同摄像头对应的变焦范围。确定模块,被配置为基于配置文件,确定第二数值处于第二变焦范围内。
结合第二方面,在一种可能的实现方式中,控制模块,还被配置为控制第二摄像头执行配置操作。
结合第二方面,在一种可能的实现方式中,获取模块,被配置为获取配置文件,配置文件包括不同摄像头对应的变焦范围。确定模块,还被配置为基于配置文件,确定第一数据处于第一变焦范围内。显示模块,还被配置为利用第一摄像头获取待处理图像,对待处理图像进行裁切放大,得到第二图像,并显示第二图像。
结合第二方面,在一种可能的实现方式中,预变焦操作为双指在预览界面触摸的操作,或者单指在预览界面长按的操作。
第三方面,本公开提供一种电子设备,包括:存储器、显示屏和一个或多个处理器;存储器、显示屏与处理器耦合。其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当电子设备运行时,该处理器用于执行该存储器存储的一个或多个计算机指令,以使电子设备执行如上述第一方面中任一项的拍摄方法。
第四方面,本公开提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面中任一项的拍摄方法。
第五方面,本公开提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行如第一方面中任一项的拍摄方法。
第六方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持第一设备实现上述第一方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存第一设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
应当理解的是,上述第二方面至第六方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本公开实施例提供的一种显示示意图之一。
图2为本公开实施例提供的一种显示示意图之二。
图3为相关技术中提供的一种拍摄方法的流程示意图之一。
图4为本公开实施例提供的一种显示示意图之三。
图5为本公开实施例提供的一种电子设备的硬件结构示意图。
图6为本公开实施例提供的一种电子设备中软件结构框图。
图7为本公开实施例提供的一种拍摄方法的流程示意图二。
图8为本公开实施例提供的一种拍摄方法的流程示意图三。
图9为本公开实施例提供的一种拍摄装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行描述。其中,在本公开的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本公开中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,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中的(a)所示,响应于用户的解锁操作,手机显示界面100,界面100(即:桌面)中包括区域101、区域102和区域103。其中,区域101用于显示常规的提示数据,如:时间、天气、地址等(即,08:00,1月1号,星期四,晴、XX区)。区域102用于显示应用程序图标,例如:视频图标、运动健康图标、天气图标、浏览器图标、收音机图标、设置图标、录音机图标、应用商城图标等。区域103用于显示固定在手机底栏的应用程序图标(当显示界面发生切换时,应用程序图标不发生改变),例如:相机图标、通讯录图标、电话图标以及信息图标。
在用户需要拍摄图像时,手机可以接收到用户对“相机图标”的点击操作(即启动操作),如图1中的(b)所示,相机应用显示界面104。界面104中包括区域105、区域106和区域107。其中,区域105(又称预览区域)占据相机应用程序的大部分区域,主要用于显示预览图像。预览图像会随着用户的移动而发生变化。区域106固定在区域105下方,主要用于显示相机应用程序的多种拍摄模式,例如:夜景模式、人像模式、拍照模式、录像模式、电影模式、专业模式以及更多模式(又可以称为拍照扩展模式)等等。由于区域106可显示的内容有限,故区域106中仅以“夜景”、“人像”、“拍照”、“录影”、“电影”以及“专业”等作为显示示例示出。区域107固定在区域106下方,主要用于显示多个功能选项,例如:“图片”选项、“拍摄”选项以及“切换摄像头”选项。
若当前预览界面中的预览图像的显示比例不符合用户需求时,例如,预览图像中的拍摄对象的细节清晰度较低。用户可以选择使用相机应用的变焦功能(即zoom功能)对预览图像的显示比例进行调整,以使调整后的预览图像的显示比例符合用户需求。
在一些示例中,相机应用接收到用户触发的变焦操作(即zoom操作),作为响应,相机应用可以放大或者缩小预览界面的显示比例。
例如,结合图1中的(b),当电子设备处于录制模式下,用户触发的zoom操作的过程可以通过相机应用中的预览界面105内的圆圈201移动的过程说明。图2中的(a)通过圆圈201的移动可以表征用户将双指放置在预览界面105,用户双指朝着相反的方向移动的过程。图2中的(b)通过圆圈202的最终位置表征用户双指移动后的位置。
如图2中的(a)和图2中的(b)所示,相机应用的预览界面还包括变焦控件203。变焦控件203可以包括多个不同的变焦数值(即zoom数值)。不同的变焦数值对应不同的变焦倍数,该变焦倍数可以是预览界面中预览图像的显示比例。例如,变焦数值可以是0.5、1、3.5和7。
当相机应用检测到用户触发的zoom操作后,相机应用可以通过变焦控件203为用户显示该zoom操作对应的变焦倍数。在用户触发的zoom操作之前,如图2中的(a)所示,变焦控件203可以显示zoom操作之前的变焦倍数,即zoom操作之前,变焦倍数为1x。在用户触发的zoom操作之后,如图2中的(b)所示,变焦控件203可以显示zoom操作之后的变焦倍数,即,zoom操作之后,变焦倍数为3.5x。
也就是说,通过用户的zoom操作,可以使变焦倍数从1x增大至3.5x。由于变焦倍数也可以表征预览界面中预览图像的显示比例,故预览界面中的预览图像的显示比例也从1x增大至3.5x。可以理解的是,图2中的(a)和图2中的(b)示例性的示出了一种放大预览图像的显示比例的过程。在实际过程中,用户也可以通过zoom操作缩小预览图像的显示比例。参考图2中的(a),若要缩小预览图像的显示比例,只需用户将双指朝着相对的方向移动即可。该过程与放大预览图像的显示比例的过程类似,此处不再赘述。
图3示例性的示出一种拍摄方法,该方法可以应用于电子设备。利用该方法可以实现上述图2中的(a)和图2中的(b)所示的预览界面中的预览图像的显示比例变化的过程。下面详细介绍该拍摄方法。
步骤301、电子设备检测到用户对相机应用的第一变焦操作(第一zoom操作)。
其中,第一zoom操作用于触发相机应用的变焦功能。第一zoom操作可以是双指在预览区域滑动的操作或者单指在变焦控件上滑动操作中的任一种。
当用户启动相机应用时,相机应用可以按照相应的启动程序,显示相机应用的预览界面,并对当前调用的摄像头执行上电操作、初始化操作以及配置操作。当完成上述上电操作、初始化操作以及配置操作后,当前调用的摄像头可以不断向相机应用返回采集的图像(又可以称为预览图像)。当采集的图像的显示比例不符合用户需求时,用户可以触发第一zoom操作,以调节变焦倍数,从而调整采集的图像的显示比例。
通常,相机应用可以包括多个摄像头,例如,主摄摄像头、长焦摄像头以及广角摄像头等。当用户启动相机应用时,一般只有当前调用的摄像头处于上电状态,其他摄像头都处于未上电状态。例如,当前调用的摄像头为主摄摄像头。当用户启动相机应用时,当前调用的摄像头处于上电状态,长焦摄像头和广角摄像头都处于未上电状态。
示例性的,用户通过双指在预览区域滑动来实现第一zoom操作的过程,可以参考图2中的(a)和图2中的(b)的内容,此处不再赘述。
示例性的,结合图1中的(b),手机可以接收到用户在相机应用的预览界面105触发的长按操作,作为响应,如图4中的(a)所示,相机应用可以在预览界面105中显示变焦控件,例如,变焦条401(又可以称为zoom条)。zoom条上可以显示多个倍率,例如,0.4x、1x、3.5x、7x以及10x。
用户可以通过单指在zoom条上左右滑动,以调整zoom条的倍率,从而决定想要拍摄的图像。当用户在zoom条上滑动之前,如图4中的(a)所示,zoom条401可以用于指示当前预览图像的显示比例,当前预览图像的显示比例为1x。
下面以用户通过单指在zoom条上向右滑动,以触发第一zoom操作为例进行说明。
用户在zoom条上向右滑动,如图4中的(b)所示,zoom条401可以显示第一zoom操作后对应的变焦倍数(即zoom倍率)。此时,变焦条401显示的变焦倍数为3.5x。该变焦倍数用于指示预览界面中的预览图像的显示比例,即第一zoom操作之后,预览图像的显示比例为3.5x。可以理解的是,用户在zoom条上向左滑动时,可以缩小变焦倍数。用户在zoom条上向左滑动的过程和用户在zoom条上向右滑动的过程类似,此处不再赘述。
此外,图4中的(a)和图4中的(b)示例性的示出一种当用户在zoom条上向右滑动时,增大变焦倍数(参考上述中的变焦倍数从1x增大到3.5x)的过程。也就是说,当用户在zoom条上向左滑动时,可以缩小变焦倍数。可以理解的是,相机应用还可以设置当用户在zoom条上向右滑动时,缩小变焦倍数;向左滑动时,增大变焦倍数。本公开不限定zoom条左右滑动对应的缩放关系,具体可以根据实际灵活设置。
因此,当用户需要使用相机应用的zoom功能时,用户可以选择通过双指在预览区域滑动的形式触发第一zoom操作,用户还可以选择通过单指滑动zoom条的形式触发第一zoom操作。本公开对用户触发第一zoom操作的具体形式不作限定。
步骤302、响应于第一zoom操作,相机应用生成第一变焦指令,并向相机服务(Camera Service)发送第一变焦指令。
其中,该第一变焦指令用于请求相机服务获取第一zoom操作对应的zoom画面。该第一变焦指令包括第一zoom操作对应的变焦倍数。
在手机检测到用户对相机应用执行的第一zoom操作后,作为响应,手机的相机应用可以生成第一变焦指令,并向相机服务发送第一变焦指令,以指示相机服务基于第一zoom操作,采集第一zoom操作对应的zoom画面。
在一些示例中,基于第一zoom操作,相机应用生成第一变焦指令,并向相机服务发送第一变焦指令。
在一些示例中,在用户触发第一zoom操作的情况下,相机应用生成第一变焦指令,并向相机服务发送第一变焦指令。
在一些示例中,响应于第一zoom操作,相机应用生成第一变焦指令的过程可以包括:首先,当用户在电子设备的触摸屏上执行第一zoom操作时,会触发第一zoom操作对应的用户界面事件。然后,手机操作系统(例如Android™)会捕获该第一zoom操作对应的用户界面事件,并解析该第一zoom操作对应的用户界面事件代表的是第一zoom操作。接着,操作系统将识别出的第一zoom操作作为输入,调用第一zoom操作对应的应用程序接口(Application Programming Interface,API),将第一zoom操作传递给相机应用。相机应用通过API接收到第一zoom操作后,会根据第一zoom操作生成第一变焦指令。
在一些示例中,相机应用向相机服务发送的第一变焦指令可以通过相机应用向相机服务发送的图像获取请求(Process request)指令实现。其中,Process request指令可以包括元数据(metadata)和空缓存(buffer)。metadata 用于指示待获取的拍摄图像的拍摄信息。基于该拍摄信息,可以获取相应的拍摄图像,例如,待获取的拍摄图像可以是第一zoom操作对应的zoom画面。空buffer用于存储第一zoom操作对应的zoom画面的地址信息。之后,相机应用可以基于该第一zoom操作对应的zoom画面的地址信息获取第一zoom操作对应的zoom画面,并为用户显示第一zoom操作对应的zoom画面。
此外,Metadata可以包括多个字段,例如,zoom字段、分辨率字段等等。zoom字段用于记录变焦信息。该变焦信息包括是否触发第一zoom操作以及第一zoom操作对应的变焦倍数。
由于第一zoom操作与用户行为强相关,当用户没有触发第一zoom操作时,则Process request中Metadata内的zoom字段可以为空,或者通过其他字符表示,例如,0或者unknown。当用户触发第一zoom操作时,则Process request中Metadata内的zoom字段会被写入相应的数据。例如,zoom字段中包括第一zoom操作对应的变焦倍数。该变焦倍数可以以浮点数的形式记录,或者以其他数据类型的形式记录,本公开对此不作限制,具体以实际应用为准。
在一些示例中,相机应用可以周期性的向相机服务下发Process request。
示例性的,当用户启动相机应用后,相机应用进入预览界面。预览界面可以为用户显示多帧预览图像。多帧预览图形中的每帧预览图像都是通过相机应用向相机服务下发的Process request获取到的。由于多帧预览图像中每帧预览图像之间间隔固定时长,所以Process request是相机应用周期性下发至相机服务的。例如,预览界面1s显示30帧预览图像,则相机应用需要每隔1/30s向相机服务下发一次Process request,从而获取到当前时刻对应的预览图像。
步骤303、相机服务接收第一变焦指令。
步骤304、响应于第一变焦指令,相机服务向相机HAL(Camera HAL)发送第二变焦指令。
其中,该第二变焦指令用于请求相机HAL获取第一zoom操作对应的zoom画面。该第二变焦指令包括第一zoom操作对应的变焦倍数。
在接收到第一变焦指令后,作为响应,相机服务可以生成第二变焦指令,并向相机HAL发送第二变焦指令,以指示相机HAL获取第一zoom操作对应的zoom画面。
在一些示例中,相机服务向相机HAL发送的第二变焦指令可以通过相机服务向相机HAL发送的Process request实现。其中,Process request的内容和步骤302中的Processrequest的内容类似,此处不再赘述。
步骤305、相机HAL接收响应于第二变焦指令。
步骤306、响应于第二变焦指令,相机HAL获取配置文件,并基于配置文件和第二变焦指令,确定是否切换摄像头。
其中,配置文件用于指示不同的摄像头对应的变焦范围。
例如,配置文件中指示广角摄像头对应的变焦范围为1x(不含1x)以下。主摄摄像头对应的变焦范围为1x到3.5x(不含3.5x)。长焦摄像头对应的变焦范围为3.5x以上。
需要说明的是,当电子设备的型号不同时,配置文件中指示的摄像头对应的变焦范围也可以不同。又例如,在另一款电子设备中,配置文件中指示广角摄像头对应的变焦范围为1x(不含1x)以下。主摄摄像头对应的变焦范围为1x到5x(不含5x)。长焦摄像头对应的变焦范围为5x以上。
在接收到第二变焦指令后,作为响应,相机HAL可以获取配置文件。基于配置文件和第二变焦指令,相机HAL可以确定待拍摄摄像头。之后,可以利用待拍摄摄像头获取第一zoom操作对应的zoom画面。
在一些示例中,手机中的相机HAL可以通过多个途径获取配置文件,例如,相机HAL可以从预设地址中获取配置文件。具体的,配置文件可以是手机操作系统中的软件版本自带的。配置文件是软件版本的一部分。该配置文件可以用于限定不同摄像头对应的变焦范围。
在一些示例中,基于配置文件和第二变焦指令,确定是否切换摄像头的过程可以包括:相机HAL基于配置文件中不同摄像头对应的变焦范围和第二变焦指令中包括的第一zoom操作对应的变焦倍数,确定该变焦倍数所处的变焦范围。然后,根据变焦倍数所处的变焦范围确定该变焦倍数对应的摄像头。接着,基于相机应用当前调用的摄像头和变焦倍数对应的摄像头,确定是否切换摄像头。若确定切换摄像头,则将切换的摄像头作为待拍摄摄像头。若确定不切换摄像头,则将当前调用的摄像头作为待拍摄摄像头。
例如,第二变焦指令中包括的第一zoom操作对应的变焦倍数为2x。结合配置文件可知,主摄摄像头对应的变焦范围为1x到3.5x(不含3.5x)。故变焦倍数2x处在变焦范围1x到3.5x(不含3.5x)内。根据该变焦范围可以确定该变焦倍数2x对应的摄像头为主摄摄像头。若相机应用当前调用的摄像头为主摄摄像头,则确定不需要切换摄像头,主摄摄像头为待拍摄摄像头。若相机应用当前调用的摄像头不是主摄摄像头,则将当前调用的摄像头切换为主摄摄像头。
一般情况下,当用户启动相机应用,且未对相机应用执行其他功能操作时,相机应用当前调用的摄像头为变焦倍数为1x对应的摄像头。基于配置文件可知,1x对应的摄像头为主摄摄像头。因此,当第一zoom操作对应的变焦倍数为2x时,可以确定不需要切换摄像头,故主摄摄像头为待拍摄摄像头。
步骤307、在确定切换摄像头的情况下,相机HAL控制相机硬件依次执行上电操作、初始化操作和配置操作,并向相机硬件发送第三变焦指令。
其中,第三变焦指令用于请求相机硬件获取第一zoom操作对应的zoom画面。结合步骤306可知,该相机硬件为待拍摄摄像头。
在一些示例中,若确定切换摄像头,说明用户执行的第一zoom操作对应的变焦倍数不在相机应用当前调用的摄像头对应的变焦范围内。
当确定需要切换摄像头时,相机HAL控制相机硬件执行上电操作、初始化操作和配置操作。然后向相机硬件发送第三变焦指令。在相机硬件完成上电操作、初始化操作和配置操作之后,相机硬件可以响应于第三变焦指令获取第一zoom操作对应的zoom画面。
在一些示例中,相机HAL控制相机硬件执行上电操作和初始化操作可以是相机HAL基于配置需求资源请求(acquire resource)指令实现的。其中,acquire resource指令中包括相机硬件的型号。相机HAL控制相机硬件执行配置操作可以是相机HAL基于流开启(stream on)指令实现的,其中,stream on指令中包括相机硬件的配置参数。
在一些示例中,相机HAL控制相机硬件执行上电操作和初始化操作的过程可以包括:在相机HAL获取到acquire resource请求后,相机HAL会响应于acquire resource请求控制相机硬件执行上电操作和初始化操作。
示例性的,相机HAL响应于acquire resource请求控制相机硬件执行上电操作和初始化操作的过程可以包括:相机HAL响应于acquire resource请求检查操作系统中是否包含该相机硬件。例如,相机HAL会检查操作系统中的检查设备树(device tree)或基于其他相机设备管理方式,确认该相机硬件是否存在。若确定该相机硬件存在时,相机HAL会向相机驱动发送上电指令和初始化指令,以请求相机驱动对该相机硬件执行上电操作和初始化操作。
当相机驱动接收到上电指令后,相机驱动可以响应于上电指令,对该相机硬件执行上电操作。例如,相机驱动响应于上电指令,向该相机硬件发送特定的电源控制信号,以使该相机硬件开始运行。
当该相机硬件上电完成,相机驱动可以响应于初始化指令,根据初始化指令中的初始化参数对该相机硬件进行初始化。示例性的,对该相机硬件进行初始化可以是向该相机硬件的寄存器写入数据。另外,对该相机硬件进行初始化还可以包括配置I/O端口、加载固件等。
在初始化完成后,相机驱动可以向相机HAL发送回复指令,以利用回复指令通知相机HAL该相机硬件已完成上电操作和初始化操作。
在一些示例中,相机HAL可以通过相机驱动与该相机硬件进行通信。相机HAL控制相机硬件执行配置操作的过程可以包括:在相机HAL获取到stream on请求后,相机HAL会响应于stream on请求控制相机硬件执行配置操作。
示例性的,相机HAL响应于stream on请求控制相机硬件执行配置操作的过程可以包括:相机HAL响应于stream on请求,通过相机驱动该相机硬件发送配置指令,该配置指令用于指示该相机硬件执行配置操作,该配置指令包括该相机硬件的配置参数。
该相机硬件接收配置指令;并响应于该配置指令,基于配置指令中的配置参数进行相应的设置。在配置完成后,该相机硬件可以响应于接收到的第三变焦指令,获取第一zoom操作对应的预览图像。
示例性的,配置指令中的配置参数可以包括:图像分辨率、图像格式、曝光参数、对焦参数、图像稳定参数以及白平衡参数中的至少一种。
其中,通过配置参数中的图像分辨率可以设置zoom图像的图像分辨率。通过配置参数中的图像格式可以设置zoom图像的图像格式,例如,JPEG、RAW等,从而满足不同拍摄需求。通过配置参数中的曝光参数可以设置相机硬件的曝光时间、光圈、ISO等参数,以控制zoom图像的亮度和动态范围。通过配置参数中的对焦参数可以设置待拍摄摄像头的自动对焦模式、对焦区域等,以确保zoom图像的清晰度和焦点准确性。通过配置参数中的图像稳定参数可以启用待拍摄摄像头的图像稳定功能,以减少手持拍摄时的抖动或运动造成的模糊。通过配置参数中的白平衡参数可以设置待拍摄摄像头的白平衡参数,以便在不同的光照条件下实现准确的颜色还原。
另外,配置参数中还可以根据相机硬件的支持能力,设置其他特殊参数,例如,高动态范围成像(High Dynamic Range Imaging,HDR)、拍摄、连拍、慢动作等。通过待拍摄摄像头执行配置操作,可以更好的控制和优化相机的性能,以满足用户对图像质量和功能的需求。
在一些示例中,当相机HAL控制相机硬件依次执行完上电操作、初始化操作和配置操作,可以向相机硬件发送第三变焦指令,以控制相机硬件获取第一zoom操作对应的zoom画面。
其中,相机HAL向相机硬件下发第三变焦指令的过程可以包括:首先,相机HAL响应于第二变焦指令,向相机驱动发送变焦指令。然后,相机驱动接收变焦指令。最后,相机驱动响应于变焦指令,向相机硬件发送第三变焦指令。
示例性的,相机驱动向相机硬件发送第三变焦指令,以启动相机硬件获取第一zoom操作对应的zoom画面的过程可以是:相机驱动通过USB接口或者MIPI接口,向相机硬件发送第三变焦指令。即手机的相机驱动可以通过USB接口或者MIPI接口调用相机硬件。
在一些示例中,相机HAL向相机硬件发送第三变焦指令可以通过相机HAL向相机硬件发送的Process request实现。
步骤308、相机硬件接收第三变焦指令。
步骤309、响应于第三变焦指令,相机硬件获取第一zoom操作对应的zoom画面,并向相机HAL发送第一变焦回复指令。
其中,第一变焦回复指令用于请求相机HAL显示第一zoom操作对应的zoom画面。第一变焦回复指令包括第一zoom操作对应的zoom画面。
在手机的相机硬件接收第三变焦指令之后,相机硬件可以响应于第三变焦指令,获取第一zoom操作对应的zoom画面。在相机硬件获取第一zoom操作对应的zoom画面后,可以向相机HAL发送第一变焦回复指令,从而使手机的相机应用可以基于相机硬件发送的第一变焦回复指令,显示第一zoom操作对应的zoom画面。
在一些示例中,手机的相机硬件向相机HAL发送第一变焦回复指令的过程可以包括:首先,相机硬件向相机驱动发送第一变焦回复指令。然后,相机驱动接收该第一变焦回复指令。最后,相机驱动响应于第一变焦回复指令,向相机HAL发送第一变焦回复指令。
上述手机的相机硬件向相机HAL发送第一变焦回复指令的过程,可以参考图6中数据流在操作系统内部中的摄像头、相机驱动以及相机HAL之间的具体传递过程来实现。如图6所示,相机硬件获取到数据流(即第一zoom操作对应的zoom画面)后,可以通过相机驱动,将第一zoom操作对应的zoom画面发送至相机HAL,以使相机HAL对第一zoom操作对应的zoom画面执行进一步处理。
在一些示例中,第一zoom操作对应的zoom画面的地址可以被写入到前述步骤302中的空buffer内,以得到写入后的buffer。第一变焦回复指令可以包括写入后的buffer。
步骤310、相机HAL接收第一变焦回复指令,并响应于第一变焦回复指令,向相机服务发送第二变焦回复指令。
其中,第二变焦回复指令用于请求相机服务显示第一zoom操作对应的zoom画面。第二变焦回复指令包括第一zoom操作对应的zoom画面。
在相机HAL接收第一变焦回复指令之后,相机HAL可以响应于第一变焦指令,生成第二变焦回复指令,并向相机服务发送第二变焦回复指令,从而使手机的相机应用可以基于相机HAL发送的第二变焦回复指令,显示第一zoom操作对应的zoom画面。
步骤311、相机服务接收第二变焦回复指令,并响应于第二变焦回复指令,向相机应用发送第三变焦回复指令。
其中,第三变焦回复指令用于请求相机服务显示第一zoom操作对应的zoom画面。第三变焦回复指令包括第一zoom操作对应的zoom画面。
在相机服务接收第二变焦回复指令之后,相机服务可以响应于第二变焦回复指令,生成第三变焦回复指令,并向相机应用发送第三变焦回复指令,从而使手机的相机应用可以基于第三变焦回复指令,为用户显示第一zoom操作对应的zoom画面。
步骤312、相机应用接收第三变焦回复指令,并显示第三变焦回复指令中的第一zoom操作对应的zoom画面。
当相机应用接收到该第三变焦回复指令后,相机应用可以解析第三变焦回复指令,以获取第一变焦回复指令中的第一zoom操作对应的zoom画面,并为用户显示该第一zoom操作对应的zoom画面。
在步骤306之后,本公开实施例示出的拍摄方法,还可以包括下述步骤。
步骤313、在确定不切换摄像头的情况下,相机HAL向相机硬件发送第四变焦指令。
其中,该第四变焦指令用于请求相机硬件获取与第一zoom操作对应的zoom画面。第四变焦指令包括第一zoom操作对应的变焦倍数。
在一些示例中,若确定不切换摄像头,说明用户执行的zoom操作对应的变焦倍数在相机应用当前调用的摄像头对应的变焦范围内。
当确定不切换摄像头时,由于相机应用当前调用的摄像头已完成上电指操作、初始化操作和配置操作,故相机HAL可以直接向相机硬件(即相机硬件)发送第四变焦指令,以使相机硬件可以响应于第四变焦指令获取第一zoom操作对应的zoom画面。
在一些示例中,相机HAL向相机硬件发送第四变焦指令的过程可以包括:相机HAL基于接收到的变焦指令中的第一zoom操作对应的变焦倍数,确定裁切参数。其中,裁切参数包括裁切区域的位置和大小。然后,相机HAL向相机驱动发送裁切指令。该裁切指令用于指示相机驱动按照裁切参数获取第一zoom操作对应的zoom画面。该裁切指令包括裁切参数。最后,相机驱动接收裁切指令,并基于裁切指令中的裁切参数调整图像采集区域和分辨率,并向相机硬件发送第四变焦指令,该第四变焦指令包括图像采集区域和分辨率。其中,第四变焦指令中的图像采集区域为第一zoom操作对应的zoom画面的区域。
可以理解的是,步骤307和步骤308对应的是两种完全不同的场景。本公开实施例在执行过程中可以只执行步骤307或者只执行步骤308,具体以实际应用为准,本公开对此不作限制。
步骤314、相机硬件接收第四变焦指令。
步骤315、响应于第四变焦指令,相机硬件获取第一zoom操作对应的zoom画面,并向相机HAL发送第四变焦回复指令。
其中,第四变焦回复指令用于请求相机HAL显示第一zoom操作对应的zoom画面。第四变焦回复指令包括第一zoom操作对应的zoom画面。
在接收到第四变焦指令后,相机硬件可以响应于第四变焦指令,获取第一zoom操作对应的zoom画面,并生成第四变焦回复指令,向相机HAL发送第四变焦回复指令。以便于之后相机应用为用户显示第四变焦回复指令中的第一zoom操作对应的zoom画面。
在一些示例中,由于用户触发了第一zoom操作,该第一zoom操作使得相机应用的变焦倍数发生了变化。所以相机硬件接收到第四变焦指令后,会基于第四变焦指令,获取第一zoom操作对应的zoom画面。第一zoom操作对应的zoom画面的变焦倍数与第一zoom操作对应的变焦倍数一致。
在一些示例中,结合步骤313,响应于第四变焦指令,相机硬件获取第一zoom操作对应的zoom画面的过程可以包括:相机硬件基于第四变焦指令中的图像采集区域和分辨率,在采集图像时,只输出图像采集区域的像素数据。然后对图像采集区域的像素数据进行数字放大,得到第一zoom操作对应的zoom画面。
步骤316、相机HAL接收第四变焦回复指令,并响应于第四变焦回复指令,向相机服务发送第五变焦回复指令。
其中,第五变焦回复指令用于请求相机服务显示第一zoom操作对应的zoom画面。第五变焦回复指令包括第一zoom操作对应的zoom画面。
在相机HAL接收第四变焦回复指令之后,相机HAL可以响应于第四变焦回复指令,生成第五变焦回复指令,并向相机服务发送第五变焦回复指令,从而使手机的相机应用可以基于相机HAL发送的第五变焦回复指令,显示第一zoom操作对应的zoom画面。
步骤317、相机服务接收第五变焦回复指令,并响应于第五变焦回复指令,向相机应用发送第六变焦回复指令。
其中,第六变焦回复指令用于请求相机应用显示第一zoom操作对应的zoom画面。第六变焦回复指令包括第一zoom操作对应的zoom画面。
在相机服务接收第五变焦回复指令之后,相机服务可以响应于第五变焦回复指令,生成第六变焦回复指令,并向相机应用发送第六变焦回复指令,从而使手机的相机应用可以基于第六变焦回复指令,为用户显示第一zoom操作对应的zoom画面。
步骤318、相机应用接收第六变焦回复指令,并显示第六变焦回复指令中的第一zoom操作对应的zoom画面。
当相机应用接收到该第六变焦回复指令后,相机应用可以解析第六变焦回复指令,以获取到第六变焦回复指令中的第一zoom操作对应的zoom画面,并为用户显示该第一zoom操作对应的zoom画面。
结合图3所示的实施例可知,当用户触发第一zoom操作后,可能需要切换摄像头。当确定需要切换摄像头时,相机HAL需要控制相机硬件执行上电操作以及初始化操作等。而这些操作的执行都需要一定时长,这样的话,相机硬件将无法及时为用户提供服务,这也使得相机应用出现卡顿现象,影响了用户体验。
对此,本公开实施例提供一种拍摄方法,该方法在用户使用相机应用的变焦功能时,避免卡顿现象的出现,提高zoom图像输出的流畅度和用户的使用体验。
下面将结合附图对本实施例的实施方式进行详细描述。
示例性的,本公开实施例提供的一种拍摄方法可应用于手机、车载设备(也可称为车机)、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(personal digital assistant,PDA)、可穿戴电子设备、虚拟现实设备等具有拍摄功能的电子设备,本公开实施例对此不做任何限制。
以手机为上述电子设备举例,如图5所示,为手机的一种结构示意图。
其中,手机500可以包括处理器510,外部存储器接口520,内部存储器521,通用串行总线(universal serial bus,USB)接口530,充电管理模块540,电池管理模块541,电池542,天线1,天线2,移动通信模块550,无线通信模块560,音频模块570,扬声器570A,受话器570B,麦克风570C,耳机接口570D,传感器模块580,按键590,马达591,指示器592,摄像头593以及显示屏594等。
其中,传感器模块580可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器,骨传导传感器等。
可以理解的是,本实施例示意的结构并不构成对手机500的具体限定。在另一些实施例中,手机500可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器510可以包括一个或多个处理单元,例如:处理器510可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。控制器可以是手机500的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器510中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器510中的存储器为高速缓冲存储器。该存储器可以保存处理器510刚用过或循环使用的指令或数据。如果处理器510需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器510的等待时间,因而提高了系统的效率。
在一些实施例中,处理器510可以包括一个或多个接口。接口可以包括集成电路(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)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机500的结构限定。在另一些实施例中,手机500也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块540用于从充电器接收充电输入。充电管理模块540为电池542充电的同时,还可以通过电池管理模块541为电子设备供电。
电池管理模块541用于连接电池542,充电管理模块540与处理器510。电池管理模块541接收电池542和/或充电管理模块540的输入,为处理器510,内部存储器521,外部存储器,显示屏594,摄像头593,和无线通信模块560等供电。在其他一些实施例中,电池管理模块541也可以设置于处理器510中。在另一些实施例中,电池管理模块541和充电管理模块540也可以设置于同一个器件中。
手机500的无线通信功能可以通过天线1,天线2,移动通信模块550,无线通信模块560,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。手机500中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
移动通信模块550可以提供应用在手机500上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块550可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块550可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块550还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器570A,受话器570B等)输出声音信号,或通过显示屏594显示图像或视频。
无线通信模块560可以提供应用在手机500上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块560可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块560经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器510。无线通信模块560还可以从处理器510接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,手机500的天线1和移动通信模块550耦合,天线2和无线通信模块560耦合,使得手机500可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
手机500通过GPU,显示屏594,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏594和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器510可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏594用于显示图像,视频等。该显示屏594包括显示面板。显示面板可以采用液晶屏幕(liquid crystal display,LCD),发光二极管(light-emitting diode,LED),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。
其中,本公开实施例中的显示屏594如果集成了触摸传感器,则显示屏594可以称为触摸屏。该触摸传感器也可以称为“触控面板”。也就是说,显示屏594可以包括显示面板和触摸面板。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器检测到触摸操作后,可触发内核层的驱动(如TP驱动)周期性地扫描该触摸操作产生的触摸参数。然后,内核层的驱动将触摸参数传递给上层的相关模块,以便于相关模块确定触摸参数对应的触摸事件。
另外,显示屏594可以提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器也可以设置于手机500的表面,而不是集成在显示屏594中。此时,触摸传感器与显示屏594所处的位置可以不同。本公开实施例中以屏幕是集成有触摸传感器的屏幕为例,对播放界面的显示方法的具体过程进行说明。
手机500可以通过ISP,摄像头593,视频编解码器,GPU,显示屏594以及应用处理器等实现拍摄功能。一般的,图像信号处理器包括图像前端引擎(image front end,IFE)、拜耳处理阶段(bayer processing segment,BPS)以及图像处理引擎(image processingengine,IPE)等模块。
ISP 用于处理摄像头593反馈的数据。摄像头593用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。手机500可以支持一种或多种视频编解码器。这样,手机500可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving pictureexperts group,MPEG)5,MPEG2,MPEG5,MPEG5等。
外部存储器接口520可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机500的存储能力。外部存储卡通过外部存储器接口520与处理器510通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器521可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器510通过运行存储在内部存储器521的指令,从而执行手机500的各种功能应用以及数据处理。例如,在本公开实施例中,处理器510可以通过执行存储在内部存储器521中的指令,内部存储器521可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机500使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器521可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flashstorage,UFS)等。
手机500可以通过音频模块570,扬声器570A,受话器570B,麦克风570C,耳机接口570D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块570用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块570还可以用于对音频信号编码和解码。扬声器570A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器570B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风570C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口570D用于连接有线耳机。
按键590包括开机键,音量键等。按键590可以是机械按键。也可以是触摸式按键。手机500可以接收按键输入,产生与手机500的用户设置以及功能控制有关的键信号输入。马达591可以产生振动提示。马达591可以用于来电振动提示,也可以用于触摸振动反馈。指示器592可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口595用于连接SIM卡。SIM卡可以通过插入SIM卡接口595,或从SIM卡接口595拔出,实现和手机500的接触和分离。手机500可以支持5个或N个SIM卡接口,N为大于5的正整数。SIM卡接口595可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
上述手机的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android®系统为例,示例性说明手机的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。在一些实施例中,将Android®系统分为四层,从上至下分别为应用程序层,应用程序框架层,Android runtime和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
图6是本公开实施例的手机的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,硬件抽象层(hardwareabstraction layer,HAL)以及内核层。
应用程序层可以包括一系列应用程序。
如图6所示,上述应用程序可以包括音乐,日历,地图,蓝牙,游戏,视频,相机,通话,导航,浏览器等应用(application,APP)。
在本公开实施例中,应用程序层中可以安装具有拍摄功能的应用,例如,美颜应用,修图应用等。当然,其他APP需要使用拍摄功能时,也可以调用相机应用实现拍摄功能。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图6所示,以相机应用程序举例,应用程序框架层中可设置相机服务。相机应用程序可通过调用预设的API启动相机服务。相机服务在运行过程中可以与HAL(hardwareabstraction layer,硬件抽象层)中的相机HAL交互。相机HAL负责与手机中实现拍摄功能的硬件设备(例如摄像头)进行交互。
示例性的,应用程序框架层中还可以包括活动管理器,窗口管理器,内容提供器,资源管理器,输入法管理器等。
其中,活动管理器可用于管理每个应用的生命周期。应用通常以activity的形式运行在操作系统中。活动管理器可以调度应用的activity进程管理每个应用的生命周期。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
其中,表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含相机驱动,音频驱动,蓝牙驱动,显示驱动,传感器驱动等,本公开实施例对此不做任何限制。
下面在图6所示的电子设备的软件结构框图的基础上,结合图3对本公开实施例提供的拍摄方法进行示意说明。该方法可以应用于上述的电子设备,以电子设备是手机为例,如图7所示,该拍摄方法可以包括下述步骤701-步骤716。
步骤701、电子设备检测到用户对相机应用的按下操作(又可以称为预变焦操作)。
示例性的,按下操作可以是双指在预览界面中的预览区域触摸的操作或者单指在预览界面中的预览区域长按的操作中的任一种。
图2中的(a)示例性示出一种用户双指在预览区域触摸的操作。图4中的(a)示例性示出一种用户单指在预览区域长按的操作,结合图4中的(a)所示,当用户单指在预览区域长按时,预览界面105可以显示变焦条401。
在一些示例中,响应于用户对相机应用的启动操作,相机应用执行启动程序。启动程序完成后,相机应用显示预览界面,当前调用的摄像头处于拍摄状态。其中,预览界面中包括当前调用的摄像头采集的图像。当前调用的摄像头为当前变焦倍数对应的摄像头。该拍摄状态是指当前调用的摄像头已完成上电操作、初始化操作以及配置操作后所处的状态。此时,电子设备中除了当前调用的摄像头,其他摄像头都处于未上电状态。
步骤702、响应于按下操作,相机应用生成第一预处理指令(又可以称为第一预zoom指令),并向相机服务发送第一预处理指令。
其中,该第一预处理指令用于请求相机服务控制所有未上电的摄像头依次执行上电操作和初始化操作。该第一预处理指令包括预zoom flag字段。该预zoom flag字段用于表征用户是否触发按下操作。
在手机检测到用户对相机应用执行的按下操作后,作为响应,手机的相机应用可以生成第一预处理指令,并向相机服务发送第一预处理指令,以指示相机服务基于按下操作,控制所有未上电的摄像头依次执行上电操作和初始化操作。
在一些示例中,基于按下操作,相机应用生成第一预处理指令,并向相机服务发送第一预处理指令。
在一些示例中,在用户触发按下操作的情况下,相机应用生成第一预处理指令,并向相机服务发送第一预处理指令。
在一些示例中,响应于按下操作,相机应用生成第一预处理指令的过程可以包括:首先,当用户在电子设备的触摸屏上执行按下操作时,会触发按下操作对应的用户界面事件。然后,手机操作系统(例如Android™)会捕获该按下操作对应的用户界面事件,并解析该按下操作对应的用户界面事件代表的是按下操作。接着,操作系统将识别出的按下操作作为输入,调用按下操作对应的API,将按下操作传递给相机应用。相机应用通过API接收到按下操作后,会根据按下操作生成第一预处理指令。
在一些示例中,相机应用向相机服务发送的第一预处理指令可以通过相机应用向相机服务发送的Process request指令实现。结合步骤302,其中,Process request指令还可以包括预zoom flag字段。该预zoom flag字段可以是Process request指令中包含的字段,还可以是Process request指令中新写入的字段。本公开对此不作限制。
示例性的,预zoom flag字段可以通过不同类型的字符表征用户是否触发按下操作。例如,预zoom flag字段为0,说明用户未触发按下操作。预zoom flag字段为1,说明用户触发按下操作。
当电子设备检测到用户对相机应用执行按下操作后,说明用户有可能想要触发zoom操作。为了避免图3所示的实施例中存在的卡顿现象,本公开在检测到用户对相机应用执行按下操作后,就通过相机服务控制所有未上电的摄像头依次执行上电操作和初始化操作。这样,当用户真正触发zoom操作后,就可以避免由于触发摄像头上电操作和初始化操作而带来的时间延误,从而避免卡顿现象的出现,为用户提供更好的变焦服务。
步骤703、相机服务接收第一预处理指令。
步骤704、响应于第一预处理指令,相机服务向相机HAL发送第二预处理指令(又可以称为第二预zoom指令)。
其中,该第二预处理指令用于请求相机HAL控制所有未上电的摄像头依次执行上电操作和初始化操作。该第二预处理指令包括预zoom flag字段。
在接收到第一预处理指令后,作为响应,相机服务可以基于第一预处理指令,生成第二预处理指令,并向相机HAL发送第二预处理指令,以指示相机HAL控制所有未上电的摄像头依次执行上电操作和初始化操作。
在一些示例中,相机服务向相机HAL发送的第二预处理指令可以通过相机服务向相机HAL发送的Process request实现。
步骤705、相机HAL接收响应于第二预处理指令。
步骤706、响应于第二预处理指令,相机HAL控制所有未上电的摄像头依次执行上电操作和初始化操作。
结合步骤306可知,当用户触发zoom操作后,相机HAL会根据配置文件中不同的摄像头对应的变焦范围,来决定切换摄像头或者不切换摄像头。当不切换摄像头时,说明当前调用的摄像头为待拍摄摄像头,故不需要对当前调用的摄像头再执行上电操作和初始化操作。当切换摄像头时,说明当前调用的摄像头不是待拍摄摄像头,需要对待拍摄摄像头执行上电操作和初始化操作。
因此,为了避免当zoom操作触发时,确定需要切换摄像头,然后才对待拍摄摄像头执行上电操作和初始化操作而产生的卡顿现象。本公开实施例在检测到按下操作后,就对电子设备中所有未上电的摄像头执行上电操作和初始化操作。这样,当用户真正触发zoom操作后,不论是否切换摄像头,都不再需要对待拍摄摄像头执行上电操作和初始化操作,从而避免由于执行上电操作和初始化操作带来的时延,进而避免卡顿现象的出现。
在一些示例中,相机HAL控制所有未上电的摄像头依次执行上电操作和初始化操作可以是相机HAL基于acquire resource指令实现的。其中,acquire resource指令中包括所有未上电的摄像头的型号。
在一些示例中,相机HAL控制所有未上电的摄像头执行上电操作和初始化操作的过程可以包括:在相机HAL获取到acquire resource请求后,相机HAL会响应于acquireresource请求控制所有未上电的摄像头执行上电操作和初始化操作。
示例性的,相机HAL响应于acquire resource请求控制所有未上电的摄像头执行上电操作和初始化操作的过程可以包括:相机HAL响应于acquire resource请求检查操作系统中包含的所有未上电的摄像头。然后,相机HAL会向相机驱动发送上电指令和初始化指令,以请求相机驱动对所有未上电的摄像头执行上电操作和初始化操作。
当相机驱动接收到上电指令后,相机驱动可以响应于上电指令,对所有未上电的摄像头执行上电操作。例如,相机驱动响应于上电指令,向所有未上电的摄像头发送特定的电源控制信号,以使所有未上电的摄像头开始运行。
当所有未上电的摄像头上电完成,相机驱动可以响应于初始化指令,根据初始化指令中的初始化参数对所有未上电的摄像头进行初始化。示例性的,对所有未上电的摄像头进行初始化可以是向所有未上电的摄像头的寄存器写入数据。另外,对所有未上电的摄像头进行初始化还可以包括配置I/O端口、加载固件等。
在初始化完成后,相机驱动可以向相机HAL发送回复指令,以利用回复指令通知相机HAL所有未上电的摄像头已完成上电操作和初始化操作。
步骤707、电子设备检测到用户对相机应用的第二zoom操作。
示例性的,第二zoom操作可以是双指在预览区域滑动的操作或者单指在变焦控件上滑动的操作中的任一种。图2中的(b)示例性示出一种用户双指在预览区域滑动的操作。根据图2中的(b)中的变焦控件203可知,当用户对相机应用执行第二zoom操作后,相机应用当前的变焦倍数为3.5x。
结合图4中的(a)可知,用户单指在预览区域长按时,预览区域会显示变焦控件。图4中的(b)示例性示出一种用户单指在变焦控件上滑动的操作。例如,用户单指在变焦条401上滑动。根据图4中的(b)中的变焦条401可知,当用户对相机应用执行按下操作和滑动操作后,当前相机应用的变焦倍数为3.5x。
步骤708、响应于第二zoom操作,相机应用生成第一处理指令,并向相机服务发送第一处理指令。
其中,该第一处理指令用于请求相机服务获取第二zoom操作对应的zoom画面。该第一处理指令包括第二zoom操作对应的变焦倍数。
在手机检测到用户对相机应用执行的第二zoom操作后,作为响应,手机的相机应用可以生成第一处理指令,并向相机服务发送第一处理指令,以指示相机服务基于第二zoom操作,获取第二zoom操作对应的zoom画面。
在一些示例中,基于第二zoom操作,相机应用生成第一处理指令,并向相机服务发送第一处理指令。
在一些示例中,在用户触发第二zoom操作的情况下,相机应用生成第一处理指令,并向相机服务发送第一处理指令。
在一些示例中,响应于第二zoom操作,相机应用生成第一变焦指令的过程可以包括:首先,当用户在电子设备的触摸屏上执行第二zoom操作时,会触发第二zoom操作对应的用户界面事件。然后,手机操作系统(例如Android™)会捕获该第二zoom操作对应的用户界面事件,并解析该第二zoom操作对应的用户界面事件代表的是第二zoom操作。接着,操作系统将识别出的第二zoom操作作为输入,调用第二zoom操作对应的API,将第二zoom操作传递给相机应用。相机应用通过API接收到第二zoom操作后,会根据第二zoom操作生成第一处理指令。
在一些示例中,相机应用向相机服务发送的第一处理指令可以通过相机应用向相机服务发送的Process request指令实现。其中,该Process request指令的内容与步骤302中的Process request指令的内容类似,此处不再赘述。
步骤709、相机服务接收第一处理指令。
步骤710、响应于第一处理指令,相机服务向相机HAL发送第二处理指令。
其中,该第二处理指令用于请求相机HAL获取第二zoom操作对应的zoom画面。该第二变焦指令包括第二zoom操作对应的变焦倍数。
在接收到第一处理指令后,作为响应,相机服务可以基于第一处理指令,生成第二处理指令,并向相机HAL发送第二处理指令,以指示相机HAL获取第二zoom操作对应的zoom画面。
在一些示例中,相机服务向相机HAL发送的第二处理指令可以通过相机服务向相机HAL发送的Process request实现。
步骤711、相机HAL接收响应于第二处理指令。
步骤712、响应于第二处理指令,相机HAL获取配置文件,并基于配置文件和第二处理指令,确定是否切换摄像头。
在接收到第二处理指令后,作为响应,相机HAL可以获取配置文件。基于配置文件和第二处理指令,相机HAL可以确定待拍摄摄像头。之后,可以利用待拍摄摄像头获取第二zoom操作对应的zoom画面。
在一些示例中,基于配置文件和第二处理指令,确定是否切换摄像头的过程可以包括:相机HAL基于配置文件中不同摄像头对应的变焦范围和第二处理指令中包括的第二zoom操作对应的变焦倍数,确定该变焦倍数所处的变焦范围。然后,根据变焦倍数所处的变焦范围确定该变焦倍数对应的摄像头。接着,基于相机应用当前调用的摄像头和变焦倍数对应的摄像头,确定是否切换摄像头。若确定切换摄像头,则将切换的摄像头作为待拍摄摄像头。若确定不切换摄像头,则将当前调用的摄像头作为待拍摄摄像头。可以理解的是,步骤712的内容和步骤306的内容类似,此处不再赘述。
步骤713、在确定切换摄像头的情况下,相机HAL控制相机硬件执行配置操作,并向相机硬件发送第三处理指令。
其中,第三处理指令用于请求相机硬件获取第二zoom操作对应的zoom画面。结合步骤712可知,该相机硬件为待拍摄摄像头。
在一些示例中,若确定切换摄像头,说明用户执行的第二zoom操作对应的变焦倍数不在相机应用当前调用的摄像头对应的变焦范围内。例如,第二zoom操作是在第二时刻触发的。在第二时刻,第二zoom操作对应的变焦倍数为第二数值。第二数值处在第二摄像头对应的第二变焦范围内。由于此时相机应用使用的是当前调用的摄像头,所以需要将当前调用的摄像头切换为第二摄像头。
结合步骤706可知,当用户对相机应用触发按下操作后,相机HAL已经控制所有未上电的摄像头执行了上电操作和初始化操作。所以,当用户触发第二zoom操作,且确定需要切换摄像头时,相机HAL只需要控制相机硬件执行配置操作即可。
另外,相机HAL还可以向相机硬件发送第三处理指令。在相机硬件完成配置操作之后,相机硬件可以响应于第三处理指令获取第二zoom操作对应的zoom画面。
在一些示例中,相机HAL控制相机硬件执行配置操作可以是相机HAL基于流开启(stream on)指令实现的,其中,stream on指令中包括相机硬件的配置参数。相机HAL控制相机硬件执行配置操作的过程可以参考步骤307的内容,此处不再赘述。
在一些示例中,当相机HAL控制相机硬件执行完配置操作后,可以向相机硬件发送第三处理指令,以控制相机硬件获取第二zoom操作对应的zoom画面。
其中,相机HAL向相机硬件下发第三处理指令的过程可以包括:首先,相机HAL响应于第二处理指令,向相机驱动发送处理指令。然后,相机驱动接收处理指令。最后,相机驱动响应于处理指令,向相机硬件发送第三处理指令。
示例性的,相机驱动向相机硬件发送第三处理指令,以启动相机硬件获取第二zoom操作对应的zoom画面可以是:相机驱动通过USB接口或者MIPI接口,向相机硬件发送第三处理指令。
在一些示例中,相机HAL向相机硬件发送第三处理指令可以通过相机HAL向相机硬件发送的Process request实现。
步骤714、相机硬件接收第三处理指令。
步骤715、响应于第三处理指令,相机硬件获取第二zoom操作对应的zoom画面,并向相机HAL发送第一处理回复指令。
其中,第一处理回复指令用于请求相机HAL显示第二zoom操作对应的zoom画面。第一处理回复指令包括第二zoom操作对应的zoom画面。
在手机的相机硬件接收第三处理指令之后,相机硬件可以响应于第三处理指令,获取第二zoom操作对应的zoom画面。在相机硬件获取第二zoom操作对应的zoom画面后,可以基于第二zoom操作对应的zoom画面生成第一处理回复指令,并向相机HAL发送第一处理回复指令,从而使手机的相机应用可以基于相机硬件发送的第一处理回复指令,显示第二zoom操作对应的zoom画面。
在一些示例中,手机的相机硬件向相机HAL发送第一处理回复指令的过程可以包括:首先,相机硬件向相机驱动发送第一处理回复指令。然后,相机驱动接收该第一处理回复指令。最后,相机驱动响应于第一处理回复指令,向相机HAL发送第一处理回复指令。
上述手机的相机硬件向相机HAL发送第一处理回复指令的过程,可以参考图6中数据流在操作系统内部中的摄像头、相机驱动以及相机HAL之间的具体传递过程来实现。如图6所示,相机硬件获取到数据流(即第二zoom操作对应的zoom画面)后,可以通过相机驱动,将第二zoom操作对应的zoom画面发送至相机HAL,以使相机HAL对第二zoom操作对应的zoom画面执行进一步处理。
在一些示例中,第二zoom操作对应的zoom画面的地址可以被写入到前述步骤302中的空buffer内,以得到写入后的buffer。第一处理回复指令可以包括写入后的buffer。
步骤716、相机HAL接收第一处理回复指令,并响应于第一处理回复指令,向相机服务发送第二处理回复指令。
其中,第二处理回复指令用于请求相机服务显示第二zoom操作对应的zoom画面。第二处理回复指令包括第二zoom操作对应的zoom画面。
在相机HAL接收第一处理回复指令之后,相机HAL可以响应于第一处理指令,生成第二处理回复指令,并向相机服务发送第二处理回复指令,从而使手机的相机应用可以基于相机HAL发送的第二处理回复指令,显示第二zoom操作对应的zoom画面。
步骤717、相机服务接收第二处理回复指令,并响应于第二处理回复指令,向相机应用发送第三处理回复指令。
其中,第三处理回复指令用于请求相机服务显示第二zoom操作对应的zoom画面。第三处理回复指令包括第二zoom操作对应的zoom画面。
在相机服务接收第二处理回复指令之后,相机服务可以响应于第二处理回复指令,生成第三处理回复指令,并向相机应用发送第三处理回复指令,从而使手机的相机应用可以基于第三处理回复指令,为用户显示第二zoom操作对应的zoom画面。
步骤718、相机应用接收第三处理回复指令,并显示第三处理回复指令中第二zoom操作对应的zoom画面。
当相机应用接收到第三处理回复指令后,相机应用可以解析第三处理回复指令,以获取到第三处理回复指令中的第二zoom操作对应的zoom画面,并为用户显示该第二zoom操作对应的zoom画面。
在步骤712之后,本公开实施例示出的拍摄方法,还可以包括下述步骤。
步骤719、在确定不切换摄像头的情况下,相机HAL向相机硬件发送第四处理指令。
其中,该第四处理指令用于请求相机硬件获取与第二zoom操作对应的zoom画面。第四处理指令包括第二zoom操作对应的变焦倍数。
在一些示例中,若确定不切换摄像头,说明用户执行的zoom操作对应的变焦倍数在相机应用当前调用的摄像头对应的变焦范围内。例如,第二zoom操作是在第一时刻触发的。在第一时刻,第二zoom操作对应的变焦倍数为第一数值。第一数值处在当前调用的摄像头对应的第一变焦范围内。由于此时相机应用使用的摄像头为当前调用的摄像头,所以不需要切换摄像头。
当确定不切换摄像头时,由于相机应用当前调用的摄像头已完成上电指操作、初始化操作和配置操作,故相机HAL可以直接向相机硬件(即相机硬件)发送第四处理指令,以使相机硬件可以响应于第四处理指令获取第二zoom操作对应的zoom画面。
在一些示例中,相机HAL向相机硬件发送第四处理指令的过程可以包括:相机HAL基于接收到的第四处理指令中的第二zoom操作对应的变焦倍数,确定裁切参数。其中,裁切参数包括裁切区域的位置和大小。然后,相机HAL向相机驱动发送裁切指令。该裁切指令用于指示相机驱动按照裁切参数获取第二zoom操作对应的zoom画面。该裁切指令包括裁切参数。最后,相机驱动接收裁切指令,并基于裁切指令中的裁切参数调整图像采集区域和分辨率,并向相机硬件发送第四变焦指令,该第四变焦指令包括图像采集区域和分辨率。其中,第四变焦指令中的图像采集区域为第二zoom操作对应的zoom画面的区域。
可以理解的是,步骤713和步骤719对应的是两种完全不同的场景。本公开实施例在执行过程中可以只执行步骤713或者只执行步骤719,具体以实际应用为准,本公开对此不作限制。
步骤720、相机硬件接收第四处理指令。
步骤721、响应于第四处理指令,相机硬件获取第二zoom操作对应的zoom画面,并向相机HAL发送第四处理回复指令。
其中,第四处理回复指令用于请求相机HAL显示第二zoom操作对应的zoom画面。第四处理回复指令包括第二zoom操作对应的zoom画面。
在接收到第四处理指令后,相机硬件可以响应于第四处理指令,获取第二zoom操作对应的zoom画面,并基于第二zoom操作对应的zoom画面生成第四处理回复指令。然后向相机HAL发送第四处理回复指令,以便于之后相机应用为用户显示第四处理回复指令中的第二zoom操作对应的zoom画面。
在一些示例中,第二zoom操作对应的zoom画面的变焦倍数与第二zoom操作对应的变焦倍数一致。
在一些示例中,结合步骤719,响应于第四处理指令,相机硬件获取第二zoom操作对应的zoom画面的过程可以包括:相机硬件基于第四处理指令中的图像采集区域和分辨率,获取待处理图像,待处理图像包括图像采集区域的像素数据。然后对待处理图像中的图像采集区域的像素数据进行裁切放大,得到第二zoom操作对应的zoom画面。
步骤722、相机HAL接收第四处理回复指令,并响应于第四处理回复指令,向相机服务发送第五处理回复指令。
其中,第五处理回复指令用于请求相机服务显示第二zoom操作对应的zoom画面。第五处理回复指令包括第二zoom操作对应的zoom画面。
在相机HAL接收第四处理回复指令之后,相机HAL可以响应于第四处理回复指令,生成第五处理回复指令,并向相机服务发送第五处理回复指令,从而使手机的相机应用可以基于相机HAL发送的第五处理回复指令,显示第二zoom操作对应的zoom画面。
步骤723、相机服务接收第五处理回复指令,并响应于第五处理回复指令,向相机应用发送第六处理回复指令。
其中,第六处理回复指令用于请求相机服务显示第二zoom操作对应的zoom画面。第六处理回复指令包括第二zoom操作对应的zoom画面。
在相机服务接收第五处理回复指令之后,相机服务可以响应于第五处理回复指令,生成第六处理回复指令,并向相机应用发送第六处理回复指令,从而使手机的相机应用可以基于第六处理回复指令,为用户显示第二zoom操作对应的zoom画面。
步骤724、相机应用接收第六处理回复指令,并显示第六处理回复指令中的第二zoom操作对应的zoom画面。
当相机应用接收到该第六处理回复指令后,相机应用可以解析第六处理回复指令,以获取到第六处理回复指令中的第二zoom操作对应的zoom画面,并为用户显示该第二zoom操作对应的zoom画面。
采用本公开的方案,响应于用户对相机应用的启动操作,相机应用执行启动程序。启动程序完成后,相机应用显示预览界面,当前调用的摄像头处于拍摄状态。预览界面中包括当前调用的摄像头采集的图像。预览界面中包括当前调用的摄像头采集的图像,说明当前调用的摄像头处于上电状态。当检测到用户的预变焦操作后,说明用户具有触发变焦操作的可能。并且当变焦操作被触发时,电子设备有可能需要切换摄像头,以适应由于变焦操作带来的变焦倍数的变化。所以,当检测到用户的预变焦操作后,可以控制电子设备中所有处于未上电的摄像头处于上电状态。这样,当用户触发变焦操作后,可以直接利用与该变焦操作匹配的摄像头采集图像。相较于相关技术中在检测到变焦操作后,才控制摄像头上电的这种处理方式,本公开不会出现卡顿现象。也能提高了变焦图像(即第二zoom操作对应的zoom图像)输出的流畅度和用户的使用体验。
下面以利用图7所示实施例提供的拍摄方法,处理用户触发zoom操作,且该zoom操作涉及切换摄像头的场景的过程为例进行示例性说明。
当用户需要放大拍摄图像时,相机应用可以接收到用户的按下操作。响应于用户的按下操作后,相机应用向相机服务下发第一预zoom指令,以指示相机服务控制所有未上电的镜头执行上电操作和初始化操作。相机服务接收到第一预zoom指令后,可以向相机HAL下发第二预zoom指令,以指示相机HAL控制所有未上电的镜头执行上电操作和初始化操作。相机HAL接收到第二预zoom指令后,相机HAL控制所有未上电的镜头执行上电操作和初始化操作。
在所有未上电的镜头执行完上电操作和初始化操作后,相机应用可以接收到用户的zoom操作。该zoom操作用于指示放大预览图像的变焦倍数。例如,该zoom操作对应的变焦倍数为7x。
响应于用户的zoom操作后,相机应用向相机服务下发第一缩放指令,以指示相机服务显示该zoom操作对应的zoom画面。相机服务接收到第一缩放指令后,可以向相机HAL下发第二缩放指令,以指示相机HAL基于配置文件确定是否切换摄像头。
例如,配置文件中指示长焦摄像头对应的变焦范围为3.5x以上。相机应用当前调用的摄像头为主摄摄像头。主摄摄像头对应的变焦范围为1x到3.5x(不含3.5x)。由于zoom操作对应的变焦倍数为7x,所以相机HAL基于配置文件确定需要切换摄像头,具体是将主摄摄像头切换为长焦摄像头。
由于相机应用在接收到用户的zoom操作之前,已控制所有未上电的摄像头执行了上电操作和初始化操作,所以在确定切换摄像头的情况下,相机HAL可以仅控制长焦摄像头执行配置操作即可。然后相机HAL并向长焦摄像头发送第三缩放指令,以指示长焦摄像头获取zoom操作对应的zoom画面。
在长焦摄像头获取到zoom操作对应的zoom画面后,可以依次通过相机HAL和相机服务,将zoom操作对应的zoom画面发送至相机应用,以使相机应用为用户显示zoom操作对应的zoom画面。
在另外一些场景中,用户触发zoom操作,还可能不涉及切换摄像头。针对用户触发zoom操作,不涉及切换摄像头的场景的处理过程可以参考图7所示实施例中步骤719-步骤724的内容,此处不在赘述。
下面结合附图8对本公开实施例提供的拍摄方法进行说明。如图8所示,该拍摄方法可以包括以下步骤801-步骤804。
步骤801、显示相机应用的预览界面。
其中,预览界面包括第一摄像头采集的第一图像,第二摄像头处于未上电状态。第一摄像头和上述图7所示实施例中的当前调用的摄像头类似。
本公开实施例中的显示相机应用的预览界面,预览界面包括第一摄像头采集的第一图像,第二摄像头处于未上电状态可以参考上述图7所示的实施例中的步骤701中的内容,本公开实施例在此不再赘述。
步骤802、检测到用户的预变焦操作,控制第二摄像头处于上电状态。
在一些示例中,预变焦操作为双指在预览界面触摸的操作,或者单指在预览界面长按的操作。
本公开实施例中的预变焦操作为双指在预览界面触摸的操作,或者单指在预览界面长按的操作可以参考上述图7所示的实施例中的步骤701的内容,本公开实施例在此不再赘述。
本公开实施例中的检测到用户的预变焦操作,控制第二摄像头处于上电状态可以参考上述图7所示的实施例中的步骤701-步骤706,本公开实施例在此不再赘述。
在一些示例中,在检测到用户的预变焦操作,第二摄像头处于上电状态之后,方法还包括:向第二摄像头的寄存器写入数据。其中,所有未上电的摄像头包括第二摄像头。
本公开实施例中的向第二摄像头的寄存器写入数据可以参考上述图7所示的实施例中的步骤706,本公开实施例在此不再赘述。
在一些示例中,检测到用户的预变焦操作,控制第二摄像头处于上电状态,包括:检测到用户的预变焦操作,控制待拍摄摄像头处于上电状态,并向待拍摄摄像头的寄存器写入数据,待拍摄摄像头包括电子设备中所有未上电的摄像头。
本公开实施例中的检测到用户的预变焦操作,控制待拍摄摄像头处于上电状态,并向待拍摄摄像头的寄存器写入数据,待拍摄摄像头包括电子设备中所有未上电的摄像头可以参考上述图7所示的实施例中的步骤701-步骤706,本公开实施例在此不再赘述。
步骤803、检测到用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;第二图像为第一变焦操作对应的变焦图像;第一时刻为第一变焦操作的触发时刻;第一数值处在第一摄像头对应的第一变焦范围内。
其中,第二图像为基于上述图7所示的实施例中的步骤719-步骤724得到的zoom画面。
本公开实施例中的检测到用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;第二图像为第一变焦操作对应的变焦图像;第一时刻为第一变焦操作的触发时刻;第一数值处在第一摄像头对应的第一变焦范围内可以参考上述图7所示的实施例中的步骤719-步骤724,本公开实施例在此不再赘述。
在一些示例中,显示第一摄像头采集的第二图像,包括:获取配置文件,配置文件包括不同摄像头对应的变焦范围:基于配置文件,确定第一数据处于第一变焦范围内;利用第一摄像头获取待处理图像,对待处理图像进行裁切放大,得到第二图像,并显示第二图像。
本公开实施例中的获取配置文件,配置文件包括不同摄像头对应的变焦范围:基于配置文件,确定第一数据处于第一变焦范围内;利用第一摄像头获取待处理图像,对待处理图像进行裁切放大,得到第二图像,并显示第二图像可以参考上述图7所示的实施例中的步骤719-步骤724,本公开实施例在此不再赘述。
步骤804、检测到用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像;第三图像为第二变焦操作对应的变焦图像;第二时刻为第二变焦操作的触发时刻,第二时刻处于第一时刻之后;第二数值处在第二摄像头对应的第二变焦范围内。
其中,第三图像为基于上述图7所示的实施例中的步骤707-步骤718得到的zoom画面。
本公开实施例中的检测到用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像;第三图像为第二变焦操作对应的变焦图像;第二时刻为第二变焦操作的触发时刻,第二时刻处于第一时刻之后;第二数值处在第二摄像头对应的第二变焦范围内可以参考上述图7所示的实施例中的步骤707-步骤718,本公开实施例在此不再赘述。
在一些示例中,变焦倍数为第二数值,显示第二摄像头采集的第三图像,包括:基于第二数值处于第二变焦范围内,显示第三图像。
本公开实施例中的基于第二数值处于第二变焦范围内,显示第三图像可以参考上述图7所示的实施例中的步骤713-步骤718,本公开实施例在此不再赘述。
在一些示例中,基于第二数值处于第二变焦范围内,显示第三图像,包括:基于第二数值处于第二变焦范围内,将第一摄像头切换到第二摄像头,利用第二摄像头获取第三图像,并显示第三图像。
本公开实施例中的基于基于第二数值处于第二变焦范围内,将第一摄像头切换到第二摄像头,利用第二摄像头获取第三图像,并显示第三图像可以参考上述图7所示的实施例中的步骤713-步骤718,本公开实施例在此不再赘述。
在一些示例中,基于第二数值处于第二变焦范围内,包括:获取配置文件,配置文件包括不同摄像头对应的变焦范围:基于配置文件,确定第二数值处于第二变焦范围内。
本公开实施例中的获取配置文件,配置文件包括不同摄像头对应的变焦范围:基于配置文件,确定第二数值处于第二变焦范围内可以参考上述图7所示的实施例中的步骤712-步骤713,本公开实施例在此不再赘述。
在一些示例中,在利用第二摄像头获取第三图像之前,方法还包括:控制第二摄像头执行配置操作。
本公开实施例中的控制第二摄像头执行配置操作可以参考上述图7所示的实施例中的步骤713,本公开实施例在此不再赘述。
另外,上述实施例中是以手机使用相机应用程序拍摄图像作为应用场景举例说明的,可以理解的是,上述显示方法还可以应用于车载设备、平板电脑、手表等其他具有拍摄功能的电子设备中以及其他具有拍摄功能的APP中,本公开实施例对此不做任何限制。
对应于前述实施例中的方法,本公开实施例还提供一种拍摄装置。该拍摄装置可以应用于电子设备,用于实现前述实施例中的方法。该拍摄装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
例如,图9示出了一种拍摄装置900的结构示意图,如图9所示,该拍摄装置900可以包括:显示模块901和控制模块902等。
其中,显示模块901,被配置为显示相机应用的预览界面,预览界面包括第一摄像头采集的第一图像,第二摄像头处于未上电状态;检测到用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示第一摄像头采集的第二图像;第二图像为第一变焦操作对应的变焦图像;第一时刻为第一变焦操作的触发时刻;第一数值处在第一摄像头对应的第一变焦范围内;检测到用户的第二变焦操作,在第二时刻,变焦倍数为第二数值,显示第二摄像头采集的第三图像;第三图像为第二变焦操作对应的变焦图像;第二时刻为第二变焦操作的触发时刻,第二时刻处于第一时刻之后;第二数值处在第二摄像头对应的第二变焦范围内。
控制模块902,被配置为检测到用户的预变焦操作,控制第二摄像头处于上电状态。
在一种可能的实现方式中,显示模块901,还被配置为基于第二数值处于第二变焦范围内,显示第三图像。
在一种可能的实现方式中,显示模块901,还被配置为基于第二数值处于第二变焦范围内,将第一摄像头切换到第二摄像头,利用第二摄像头获取第三图像,并显示第三图像。
在一种可能的实现方式中,控制模块902,还被配置为向第二摄像头的寄存器写入数据。
在一种可能的实现方式中,控制模块902,还被配置为检测到用户的预变焦操作,控制待拍摄摄像头处于上电状态,并向待拍摄摄像头的寄存器写入数据,待拍摄摄像头包括电子设备中所有未上电的摄像头。
在一种可能的实现方式中,该拍摄装置还包括获取模块903和确定模块904。
获取模块903,被配置为获取配置文件,配置文件包括不同摄像头对应的变焦范围。
确定模块904,被配置为基于配置文件,确定第二数值处于第二变焦范围内。
在一种可能的实现方式中,控制模块902,还被配置为控制第二摄像头执行配置操作。
在一种可能的实现方式中,获取模块903,被配置为获取配置文件,配置文件包括不同摄像头对应的变焦范围。
确定模块904,还被配置为基于配置文件,确定第一数据处于第一变焦范围内。
显示模块901,还被配置为利用第一摄像头获取待处理图像,对待处理图像进行裁切放大,得到第二图像,并显示第二图像。
在一种可能的实现方式中,预变焦操作为双指在预览界面触摸的操作,或者单指在预览界面长按的操作。
应理解以上装置中单元或模块(以下均称为单元)的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。
例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里的处理元件又可以称为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或这些集成电路形式中至少两种的组合。
再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如CPU或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统SOC的形式实现。
在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例的方法。存储元件可以为与处理元件处于同一芯片上的存储元件,即片内存储元件。
在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片内存储元件上,以调用并执行以上方法实施例的方法。
例如,本公开实施例还可以提供一种装置,如:电子设备,可以包括:处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如前述实施例的拍摄方法。该存储器可以位于该电子设备之内,也可以位于该电子设备之外。且该处理器包括一个或多个。
在又一种实现中,该装置实现以上方法中各个步骤的单元可以是被配置成一个或多个处理元件,这些处理元件可以设置于对应上述的电子设备上,这里的处理元件可以为集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或者这些类集成电路的组合。这些集成电路可以集成在一起,构成芯片。
例如,本公开实施例还提供一种芯片,该芯片可以应用于上述电子设备。芯片包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;处理器通过接口电路从电子设备的存储器接收并执行计算机指令,以实现以上方法实施例中的方法。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备可以实现如上述的拍摄方法。
本公开实施例还提供一种计算机程序产品,包括如上述电子设备运行的计算机指令,当计算机指令在电子设备中运行时,使得电子设备实可以现如上述的拍摄方法。通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
例如,本公开实施例还可以提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如前述方法实施例中的拍摄方法。
以上,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何在本公开揭露的技术范围内的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种拍摄方法,其特征在于,应用于电子设备,所述方法包括:
显示相机应用的预览界面,所述预览界面包括第一摄像头采集的第一图像,第二摄像头处于未上电状态;
检测到用户的预变焦操作,控制所述第二摄像头处于上电状态;
检测到用户的第一变焦操作,在第一时刻,变焦倍数为第一数值,显示所述第一摄像头采集的第二图像;所述第二图像为所述第一变焦操作对应的变焦图像;所述第一时刻为所述第一变焦操作的触发时刻;所述第一数值处在所述第一摄像头对应的第一变焦范围内;
检测到用户的第二变焦操作,在第二时刻,所述变焦倍数为第二数值,显示所述第二摄像头采集的第三图像;所述第三图像为所述第二变焦操作对应的变焦图像;所述第二时刻为所述第二变焦操作的触发时刻,所述第二时刻处于所述第一时刻之后;所述第二数值处在所述第二摄像头对应的第二变焦范围内。
2.根据权利要求1所述的方法,其特征在于,所述变焦倍数为第二数值,显示所述第二摄像头采集的第三图像,包括:
基于所述第二数值处于所述第二变焦范围内,显示所述第三图像。
3.根据权利要求2所述的方法,其特征在于,所述基于所述第二数值处于所述第二变焦范围内,显示所述第三图像,包括:
基于所述第二数值处于所述第二变焦范围内,将所述第一摄像头切换到所述第二摄像头,利用所述第二摄像头获取所述第三图像,并显示所述第三图像。
4.根据权利要求1所述的方法,其特征在于,在所述检测到用户的预变焦操作,所述第二摄像头处于上电状态之后,所述方法还包括:
向所述第二摄像头的寄存器写入数据。
5.根据权利要求1所述的方法,其特征在于,所述检测到用户的预变焦操作,控制所述第二摄像头处于上电状态,包括:
检测到用户的预变焦操作,控制待拍摄摄像头处于上电状态,并向所述待拍摄摄像头的寄存器写入数据,所述待拍摄摄像头包括所述电子设备中所有未上电的摄像头。
6.根据权利要求3所述的方法,其特征在于,所述基于所述第二数值处于所述第二变焦范围内,包括:
获取配置文件,所述配置文件包括不同摄像头对应的变焦范围:
基于所述配置文件,确定所述第二数值处于所述第二变焦范围内。
7.根据权利要求3所述的方法,其特征在于,在所述利用所述第二摄像头获取所述第三图像之前,所述方法还包括:
控制所述第二摄像头执行配置操作。
8.根据权利要求1所述的方法,其特征在于,所述显示所述第一摄像头采集的第二图像,包括:
获取配置文件,所述配置文件包括不同摄像头对应的变焦范围:
基于所述配置文件,确定所述第一数据处于所述第一变焦范围内;
利用所述第一摄像头获取待处理图像,对所述待处理图像进行裁切放大,得到所述第二图像,并显示所述第二图像。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述预变焦操作为双指在所述预览界面触摸的操作,或者单指在预览界面长按的操作。
10.一种电子设备,其特征在于,包括:
触摸屏,所述触摸屏包括触摸传感器和显示屏;
一个或多个处理器;
存储器;
其中,所述存储器中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述电子设备执行时,使得所述电子设备执行如权利要求1至9中任一项所述的一种拍摄方法。
11.一种计算机可读存储介质,其上存储有计算机程序指令;其特征在于,
当所述计算机程序指令被电子设备执行时,使得电子设备实现如权利要求1至9中任一项所述的一种拍摄方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311413848.2A CN117278850A (zh) | 2023-10-30 | 2023-10-30 | 一种拍摄方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311413848.2A CN117278850A (zh) | 2023-10-30 | 2023-10-30 | 一种拍摄方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117278850A true CN117278850A (zh) | 2023-12-22 |
Family
ID=89219665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311413848.2A Pending CN117278850A (zh) | 2023-10-30 | 2023-10-30 | 一种拍摄方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117278850A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117725941A (zh) * | 2024-02-02 | 2024-03-19 | 荣耀终端有限公司 | 扫码方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022252780A1 (zh) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | 拍摄方法及电子设备 |
CN115706850A (zh) * | 2021-08-12 | 2023-02-17 | 荣耀终端有限公司 | 图像拍摄的方法、设备、存储介质和程序产品 |
WO2023077939A1 (zh) * | 2021-11-05 | 2023-05-11 | 荣耀终端有限公司 | 摄像头的切换方法、装置、电子设备及存储介质 |
CN116709021A (zh) * | 2023-02-13 | 2023-09-05 | 荣耀终端有限公司 | 变焦响应方法、电子设备及存储介质 |
CN116708954A (zh) * | 2022-12-30 | 2023-09-05 | 荣耀终端有限公司 | 一种拍照方法及电子设备 |
-
2023
- 2023-10-30 CN CN202311413848.2A patent/CN117278850A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022252780A1 (zh) * | 2021-05-31 | 2022-12-08 | 华为技术有限公司 | 拍摄方法及电子设备 |
CN115706850A (zh) * | 2021-08-12 | 2023-02-17 | 荣耀终端有限公司 | 图像拍摄的方法、设备、存储介质和程序产品 |
WO2023077939A1 (zh) * | 2021-11-05 | 2023-05-11 | 荣耀终端有限公司 | 摄像头的切换方法、装置、电子设备及存储介质 |
CN116708954A (zh) * | 2022-12-30 | 2023-09-05 | 荣耀终端有限公司 | 一种拍照方法及电子设备 |
CN116709021A (zh) * | 2023-02-13 | 2023-09-05 | 荣耀终端有限公司 | 变焦响应方法、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117725941A (zh) * | 2024-02-02 | 2024-03-19 | 荣耀终端有限公司 | 扫码方法及电子设备 |
CN117725941B (zh) * | 2024-02-02 | 2024-06-25 | 荣耀终端有限公司 | 扫码方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114679537B (zh) | 一种拍摄方法及终端 | |
US11831977B2 (en) | Photographing and processing method and electronic device | |
US11722449B2 (en) | Notification message preview method and electronic device | |
US11669242B2 (en) | Screenshot method and electronic device | |
CN114205522B (zh) | 一种长焦拍摄的方法及电子设备 | |
US20220337742A1 (en) | Camera switching method for terminal, and terminal | |
WO2020073959A1 (zh) | 图像捕捉方法及电子设备 | |
US11949978B2 (en) | Image content removal method and related apparatus | |
US12096120B2 (en) | Photographing method in telephoto scenario and mobile terminal | |
US12120450B2 (en) | Photographing method and electronic device | |
US20220321797A1 (en) | Photographing method in long-focus scenario and terminal | |
CN114650363B (zh) | 一种图像显示的方法及电子设备 | |
CN115484380B (zh) | 拍摄方法、图形用户界面及电子设备 | |
WO2023056795A1 (zh) | 快速拍照方法、电子设备及计算机可读存储介质 | |
CN116996762A (zh) | 一种自动曝光方法、电子设备及计算机可读存储介质 | |
CN117278850A (zh) | 一种拍摄方法及电子设备 | |
CN110609650B (zh) | 一种应用状态切换方法及终端设备 | |
CN115460343B (zh) | 图像处理方法、设备及存储介质 | |
CN116347217A (zh) | 图像处理方法、设备及存储介质 | |
CN115686182A (zh) | 增强现实视频的处理方法与电子设备 | |
CN116916148B (zh) | 一种图像处理方法、电子设备及可读存储介质 | |
CN117641116B (zh) | 一种控制摄像头帧率的方法及电子设备 | |
CN117479008B (zh) | 一种视频处理方法、电子设备及芯片系统 | |
CN117499777B (zh) | 一种图像显示方法和装置 | |
WO2022188632A1 (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 |