图像拍摄方法、装置、计算机可读存储介质及电子设备
技术领域
本公开涉及计算机技术领域,尤其是一种图像拍摄方法、装置、计算机可读存储介质及电子设备。
背景技术
目前,全景图被广泛地应用于VR场景。在一些领域,诸如地图、房屋展示、室内装修等领域,使用全景图可以以近似实景的方式向用户展示周围的环境。同时全景图包含了大量的场景信息,能有效地应用于深度图估计算法。
通常,为了生成精确的全景图,在拍摄时,需要将相机的位置固定,然后原地旋转一周,拍摄若干幅图像进行全景图的拼接。
发明内容
本公开的实施例提供了一种图像拍摄方法、装置、计算机可读存储介质及电子设备。
本公开的实施例提供了一种图像拍摄方法,该方法包括:建立表征拍摄设备所在的空间的坐标系;以拍摄设备当前的位置为拍摄原点,在坐标系中设置第一参考点集合;在每个第一参考点与拍摄原点的连线上插入第二参考点;对于每个第一参考点,确定表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点是否共线,响应于确定共线且触发拍摄图像的操作,拍摄图像。
在一些实施例中,该方法还包括:基于拍摄得到的各个图像,生成全景图。
在一些实施例中,确定表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点是否共线,包括:确定目标屏幕上显示的表征光心的第一点、表征第一参考点的第二点和表征对应的第二参考点的第三点是否重合,如果重合,确定光心与第一参考点和对应的第二参考点共线。
在一些实施例中,触发拍摄图像的操作为手动触发或自动触发。
在一些实施例中,在坐标系中设置第一参考点集合,包括:在至少两个预设俯仰角中的每个预设俯仰角对应的水平面上,以过拍摄原点的垂直线为轴,均匀地沿圆周设置预设数量个第一参考点,其中,每个第一参考点与拍摄原点的距离为第一预设距离。
在一些实施例中,在每个第一参考点与拍摄原点的连线上插入第二参考点,包括:在每个第一参考点与拍摄原点的连线上的与拍摄原点距离为第二预设距离的位置插入第二参考点。
根据本公开实施例的另一个方面,提供了一种图像拍摄装置,该装置包括:建立模块,用于建立表征拍摄设备所在的空间的坐标系;设置模块,用于以拍摄设备当前的位置为拍摄原点,在坐标系中设置第一参考点集合;插入模块,用于在每个第一参考点与拍摄原点的连线上插入第二参考点;拍摄模块,用于对于每个第一参考点,确定表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点是否共线,响应于确定共线且触发拍摄图像的操作,拍摄图像。
在一些实施例中,该装置还包括:生成模块,用于基于拍摄得到的各个图像,生成全景图。
在一些实施例中,拍摄模块进一步用于:确定目标屏幕上显示的表征光心的第一点、表征第一参考点的第二点和表征对应的第二参考点的第三点是否重合,如果重合,确定光心与第一参考点和对应的第二参考点共线。
在一些实施例中,触发拍摄图像的操作为手动触发或自动触发。
在一些实施例中,设置模块进一步用于:在至少两个预设俯仰角中的每个预设俯仰角对应的水平面上,以过拍摄原点的垂直线为轴,均匀地沿圆周设置预设数量个第一参考点,其中,每个第一参考点与拍摄原点的距离为第一预设距离。
在一些实施例中,插入模块进一步用于:在每个第一参考点与拍摄原点的连线上的与拍摄原点距离为第二预设距离的位置插入第二参考点。
根据本公开实施例的另一个方面,提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序用于执行上述图像拍摄方法。
根据本公开实施例的另一个方面,提供了一种电子设备,电子设备包括:处理器;用于存储处理器可执行指令的存储器;处理器,用于从存储器中读取可执行指令,并执行指令以实现上述图像拍摄方法。
基于本公开上述实施例提供的图像拍摄方法、装置、计算机可读存储介质及电子设备,通过建立相机所在的空间的坐标系,在坐标系中设置第一参考点集合,在每个第一参考点与原点之间的连线上设置第二参考点,在拍摄时,将表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点调整为共线时,触发拍摄图像的操作得到多个图像,从而实现了在拍摄时,基于第一参考点、第二参考点和第三参考点,为用户调整相机的位置提供参考,从而将相机的位置限制在一定区域,提高了拍摄用于生成全景图的图像的精确性,有助于使用这些图像生成高质量的全景图。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开所适用的系统图。
图2是本公开一示例性实施例提供的图像拍摄方法的流程示意图。
图3是本公开的实施例的确定是否共线的示例性示意图。
图4是本公开的实施例的基于目标屏幕上现实的点确定是否共线的示例性示意图。
图5是本公开的实施例的设置第一参考点集合的示例性示意图。
图6是本公开一示例性实施例提供的图像拍摄装置的结构示意图。
图7是本公开另一示例性实施例提供的图像拍摄装置的结构示意图。
图8是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
申请概述
在全景图的拍摄过程中,通常需要使相机的位置固定,原地旋转一周进行拍摄,或者使用专用的包括多个摄像头的全景相机拍摄。全景相机的成本较高,灵活性不强。当用户手持相机原地以竖直方向为轴旋转一周进行拍摄时,无法保证相机的位置固定,并且拍摄的全景图的垂直方向的视场角有限。
示例性系统
图1示出了可以应用本公开的实施例的图像拍摄方法或图像拍摄装置的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用于在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如拍摄类应用,地图类应用,三维模型应用等。
终端设备101可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
服务器103可以是提供各种服务的服务器,例如对终端设备101实现的功能提高支持的后台服务器。后台服务器可以将实现本公开的实施例的图像拍摄方法的应用程序发送至终端设备101,使终端设备执行上述图像拍摄方法。
需要说明的是,本公开的实施例所提供的图像拍摄方法一般由服务器103执行,相应地,图像拍摄装置一般设置于服务器103中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
示例性方法
图2是本公开一示例性实施例提供的图像拍摄方法的流程示意图。本实施例可应用在电子设备(如图1所示的终端设备101)上,如图2所示,该方法包括如下步骤:
步骤201,建立表征拍摄设备所在的空间的坐标系。
在本实施例中,电子设备可以首先建立表征拍摄设备所在的空间的坐标系。其中,上述拍摄设备可以设置在上述电子设备上(例如电子设备为手机,拍摄设备为手机上的摄像头),也可以是与上述电子设备通信连接的相机(例如电子设备为台式计算机,拍摄设备为数码相机)。
具体地,电子设备可以实时获得当前拍摄的图像帧对应的位姿矩阵(通常为4×4矩阵)。利用位姿矩阵,可以实时确定拍摄设备的位置,基于该位置,可以建立坐标系。坐标系的原点可以任意设置,例如拍摄设备当前的位置可以为坐标系的原点,或者用户手动选择的点可以设置为坐标系的原点。
通常,在一些增强现实应用程序的软件平台(例如IOS系统中的ARKit,安卓系统中的ARCore)中,可以使用其提供的API(Application Programming Interface,应用程序接口),对虚拟的三维空间进行各种处理。作为示例,在ARKit平台中,基于session回调,获得当前帧对应的位姿矩阵,可以从位姿矩阵中的最后一列解读出x,y,z信息,通过这个信息,可以实时确定相机的位置和姿态角(包括俯仰角(pitch)、偏航角(yaw)、滚转角(roll))。
步骤202,以拍摄设备当前的位置为拍摄原点,在坐标系中设置第一参考点集合。
在本实施例中,电子设备可以以拍摄设备当前的位置为拍摄原点,在坐标系中设置第一参考点集合。其中,第一参考点的位置可以任意设置。例如,可以在以上述拍摄原点为球心,以预设半径确定一个球面,在该球面上,均匀地分布多个第一参考点。
再例如,第一参考点集合可以包括至少两个子集合,每个子集合中的第一参考点对应于相同的俯仰角(即拍摄设备在拍摄原点的俯仰角)。上下相邻的两个子集合的俯仰角差值小于拍摄设备的垂直视角,这样保证了拍摄的上下相邻的图像包括重叠部分。每个子集合包括的第一参考点的数量大于目标数量,其中,目标数量保证了拍摄的每两个相邻的图像包括重叠部分。作为示例,目标数量N可以按照下式计算:N=360°/a,其中,a为拍摄设备的水平视角。重叠部分使生成的全景图不会产生空洞。每个第一参考点与原点的距离相同(为第一预设距离),且每个子集合中的第一参考点以过拍摄原点的垂直线为轴,在水平面上以圆周形式均匀排列。
步骤203,在每个第一参考点与拍摄原点的连线上插入第二参考点。
在本实施例中,电子设备可以在每个第一参考点与拍摄原点的连线上插入第二参考点。其中,第二参考点在连线上的位置可以任意设定。例如,每个第二参考点与原点的距离为第二预设距离。
步骤204,对于每个第一参考点,确定表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点是否共线,响应于确定共线且触发拍摄图像的操作,拍摄图像。
在本实施例中,对于每个第一参考点,电子设备可以确定表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点是否共线。其中,第三参考点用于表征拍摄设备的光心,例如,上述拍摄原点可以设置为第三参考点。
具体地,作为示例,电子设备可以根据第一参考点、第二参考点、第三参考点在上述坐标系中的坐标,确定是否共线。需要说明的是,这里的共线可以是相对共线,例如,如图3所示,当第一参考点P1、第二参考点P2、第三参考点P3均位于预设的误差范围空间301内时,即可确定共线。
电子设备可以进一步响应于确定共线且触发拍摄图像的操作,拍摄图像。可选的,触发拍摄图像的操作可以为手动触发或自动触发,从而可以灵活地设置拍摄图像的触发方式,提高拍摄图像的效率。
作为示例,当用户手持拍摄设备时,上述电子设备可以实时确定第一参考点、第二参考点、第三参考点是否共线,当确定共线时,可以输出提示信息(例如在电子设备的屏幕上显示表征三点共线的图像、文字等信息),用户可以手动点击拍摄按钮进行拍摄。或者,当确定共线时,可以自动触发拍摄功能进行拍摄。再例如,用户拍摄的第一幅图像可以用手动触发,其他图像可以用自动触发。
在一些可选的实现方式中,电子设备可以按照如下步骤确定第三参考点是否与第一参考点和对应的第二参考点共线:
确定目标屏幕上显示的表征光心的第一点、表征第一参考点的第二点和表征对应的第二参考点的第三点是否重合,如果重合,确定光心与第一参考点和对应的第二参考点共线。其中,上述目标屏幕可以是上述拍摄设备自身的屏幕,也可以是与拍摄设备通信连接的设备的屏幕。上述表征光心的第一点可以是目标屏幕的中心点。当第一参考点、第二参考点和第三参考点共线时,它们映射到目标屏幕上的点即重合。通常,上述第一点、第二点、第三点分别用相应颜色的圆形(或其他形状)区域表示。当三个圆形区域的圆心完全重合,或三个圆形区域的重合面积大于或等于预设面积时,可以确定第一参考点、第二参考点和第三参考点共线。
作为示例,如图4所示,图4(a)示出了第一点401、第二点402、第三点403不重合时的情况,图4(b)示出了第一点401、第二点402、第三点403重合时的情况,此时,用户点击拍摄按钮,得到一幅图像。
本实现方式通过可视化的操作,使用户可以根据屏幕上显示的点,精确地调整拍摄设备的位置,提高拍摄设备定位的精度。
在一些可选的实现方式中,在步骤203之后,电子设备还可以执行如下步骤:
基于拍摄得到的各个图像,生成全景图。具体地,电子设备可以利用现有的将拍摄的图像拼接成全景图的方法,生成全景图。例如,可以从各个图像中提取特征点,对这些特征点进行匹配,然后利用匹配的特征点估算单应矩阵,最后经过透视变换,拼接成全景图。本实现方式通过使用限制拍摄设备的位置的方法拍摄的图像,可以在用户使用手持设备拍摄时,改善生成全景图的质量。
在一些可选的实现方式中,上述步骤202可以如下执行:
在至少两个预设俯仰角中的每个预设俯仰角对应的水平面上,以过拍摄原点的垂直线为轴,均匀地沿圆周设置预设数量个第一参考点,其中,每个第一参考点与拍摄原点的距离为第一预设距离。作为示例,如图5所示,y轴即为过拍摄原点的垂直线,α1和α2为两个预设俯仰角,在α1对应的水平面p1上沿圆周均匀地设置预设数量个第一参考点作为一个第一参考点子集,在α2对应的水平面p2上沿圆周均匀地设置预设数量个第一参考点作为另一个第一参考点子集。两个第一参考点子集即为第一参考点集合。每个第一参考点与拍摄原点的距离均为第一预设距离(例如0.5m)。需要说明的是,各个预设俯仰角分别对应的第一参考点子集的预设数量可以相同,也可以不同。本实现方式的预设数量需要保证拍摄得到的相邻的两个图像包括重叠部分,使生成的全景图不会产生空洞。例如,预设数量N>360°/a,其中,a为拍摄设备的水平视角。相邻的第一参考点子集对应的俯仰角差值(例如图5中的α1和α2的差值)小于拍摄设备的垂直视角,这样保证了拍摄的上下相邻的图像包括重叠部分。
本实现方式通过在至少两个预设俯仰角分别对应的水平面上设置多个第一参考点,并且每个第一参考点与拍摄原点的距离相同,可以有助于简化设置第一参考点的过程,提高运算效率。还可以在拍摄图像时,分别在不同的俯仰角的方向上沿圆周拍摄图像,提高拍摄图像的便捷性。还可以有助于在生成全景图时,生成不同俯仰角对应的全景图,再将不同俯仰角对应的全景图合并为更大垂直视角的全景图,提高了生成全景图的精度。
在一些可选的实现方式中,基于上述实现方式,步骤203可以如下执行:在每个第一参考点与拍摄原点的连线上的与拍摄原点距离为第二预设距离的位置插入第二参考点。作为示例,第二预设距离可以为0.35m。本实现方式设置的第二参考点,与拍摄原点的距离均相同,从而可以简化设置第二参考点的过程,提高运算效率,由于各个第一参考点与对应的第二参考点的距离均相同,因此,可以使用户拍摄各个图像时,处于同样的条件,有助于提高拍摄设备定位的精度。
本公开的上述实施例提供的方法,通过建立相机所在的空间的坐标系,在坐标系中设置第一参考点集合,在每个第一参考点与原点之间的连线上设置第二参考点,在拍摄时,将表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点调整为共线时,触发拍摄图像的操作得到多个图像,从而实现了在拍摄时,基于第一参考点、第二参考点和第三参考点,为用户调整相机的位置提供参考,从而将相机的位置限制在一定区域,提高了拍摄用于生成全景图的图像的精确性,有助于使用这些图像生成高质量的全景图。
示例性装置
图6是本公开一示例性实施例提供的图像拍摄装置的结构示意图。本实施例可应用在电子设备上,如图6所示,图像拍摄装置包括:建立模块601,用于建立表征拍摄设备所在的空间的坐标系;设置模块602,用于以拍摄设备当前的位置为拍摄原点,在坐标系中设置第一参考点集合;插入模块603,用于在每个第一参考点与拍摄原点的连线上插入第二参考点;拍摄模块604,用于对于每个第一参考点,确定表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点是否共线,响应于确定共线且触发拍摄图像的操作,拍摄图像。
在本实施例中,建立模块601可以首先建立表征拍摄设备所在的空间的坐标系。其中,上述拍摄设备可以设置在上述装置上(例如电子设备为手机,拍摄设备为手机上的摄像头),也可以是与上述装置通信连接的相机(例如电子设备为台式计算机,拍摄设备为数码相机)。
具体地,建立模块601可以实时获得当前拍摄的图像帧对应的位姿矩阵(通常为4×4矩阵)。利用位姿矩阵,可以实时确定拍摄设备的位置,基于该位置,可以建立坐标系。坐标系的原点可以任意设置,例如拍摄设备当前的位置可以为坐标系的原点,或者用户手动选择的点可以设置为坐标系的原点。
通常,在一些增强现实应用程序的软件平台(例如IOS系统中的ARKit,安卓系统中的ARCore)中,可以使用其提供的API(Application Programming Interface,应用程序接口),对虚拟的三维空间进行各种处理。作为示例,在ARKit平台中,基于session回调,获得当前帧对应的位姿矩阵,可以从位姿矩阵中的最后一列解读出x,y,z信息,通过这个信息,可以实时确定相机的位置和姿态角(包括俯仰角(pitch)、偏航角(yaw)、滚转角(roll))。
在本实施例中,设置模块602可以以拍摄设备当前的位置为拍摄原点,在坐标系中设置第一参考点集合。其中,第一参考点的位置可以任意设置。例如,可以在以上述拍摄原点为球心,以预设半径确定衣柜球面,在该球面上,均匀地分布多个第一参考点。
再例如,第一参考点集合可以包括至少两个子集合,每个子集合对应于相同的俯仰角(即拍摄设备在拍摄原点的俯仰角)。每个第一参考点与原点的距离相同(为第一预设距离),且每个子集合中的第一参考点以过拍摄原点的垂直线为轴,在水平面上以圆周形式均匀排列。
在本实施例中,插入模块603可以在每个第一参考点与拍摄原点的连线上插入第二参考点。其中,第二参考点在连线上的位置可以任意设定。例如,每个第二参考点与原点的距离为第二预设距离。
在本实施例中,对于每个第一参考点,拍摄模块604可以确定表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点是否共线。其中,第三参考点用于表征拍摄设备的光心,例如,上述拍摄原点可以设置为第三参考点。
具体地,作为示例,拍摄模块604可以根据第一参考点、第二参考点、第三参考点在上述坐标系中的坐标,确定是否共线。需要说明的是,这里的共线可以是相对共线,例如,如图3所示,当第一参考点P1、第二参考点P2、第三参考点P3均位于预设的误差范围空间301内时,即可确定共线。
拍摄模块604可以进一步响应于确定共线且触发拍摄图像的操作,拍摄图像。
参照图7,图7是本公开另一示例性实施例提供的图像拍摄装置的结构示意图。
在一些可选的实现方式中,该装置还可以包括:生成模块605,用于基于拍摄得到的各个图像,生成全景图。
在一些可选的实现方式中,拍摄模块604可以进一步用于:确定目标屏幕上显示的表征光心的第一点、表征第一参考点的第二点和表征对应的第二参考点的第三点是否重合,如果重合,确定光心与第一参考点和对应的第二参考点共线。
在一些可选的实现方式中,触发拍摄图像的操作为手动触发或自动触发。
在一些可选的实现方式中,设置模块602可以进一步用于:在至少两个预设俯仰角中的每个预设俯仰角对应的水平面上,以过拍摄原点的垂直线为轴,均匀地沿圆周设置预设数量个第一参考点,其中,每个第一参考点与拍摄原点的距离为第一预设距离。
在一些可选的实现方式中,插入模块603可以进一步用于:在每个第一参考点与拍摄原点的连线上的与拍摄原点距离为第二预设距离的位置插入第二参考点。
本公开上述实施例提供的图像拍摄装置,通过建立相机所在的空间的坐标系,在坐标系中设置第一参考点集合,在每个第一参考点与原点之间的连线上设置第二参考点,在拍摄时,将表征拍摄设备的光心的第三参考点与第一参考点和对应的第二参考点调整为共线时,触发拍摄图像的操作得到多个图像,从而实现了在拍摄时,基于第一参考点、第二参考点和第三参考点,为用户调整相机的位置提供参考,从而将相机的位置限制在一定区域,提高了拍摄用于生成全景图的图像的精确性,有助于使用这些图像生成高质量的全景图。
示例性电子设备
下面,参考图8来描述根据本公开实施例的电子设备。该电子设备可以是如图1所示的终端设备101。
图8图示了根据本公开实施例的电子设备的框图。
如图8所示,电子设备800包括一个或多个处理器801和存储器802。
处理器801可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备800中的其他组件以执行期望的功能。
存储器802可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器801可以运行程序指令,以实现上文的本公开的各个实施例的图像拍摄方法以及/或者其他期望的功能。在计算机可读存储介质中还可以存储诸如拍摄的图像等各种内容。
在一个示例中,电子设备800还可以包括:输入装置803和输出装置804,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是终端设备101时,该输入装置803可以是相机等设备,用于输入图像。
该输出装置804可以向外部输出各种信息,包括拍摄的图像。该输出设备804可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图8中仅示出了该电子设备800中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备800还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像拍摄方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的图像拍摄方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。