一种模拟景深效果的拍照方法及其移动终端技术

技术编号:31240258 阅读:42 留言:0更新日期:2021-12-08 10:30
本发明专利技术提供了一种模拟景深效果的拍照方法及其移动终端,其中该方法用于安卓系统终端,其步骤包括:S1设置位图数据的渐变虚化区、焦点区、渐变虚化系数及虚化系数;S2监测到模拟景深事件被触发时,捕获相机预览帧作为待虚化位图数据及原图位图数据;S3设置RenderScript调用CPU使用虚化系数对待虚化位图数据进行高斯模糊处理计算,获取虚化位图数据;S4以原图位图数据的焦点区内像素,替换虚化位图数据的焦点区内像素;S5依据渐变虚化系数,处理原图位图数据中的渐变虚化区,获取渐变模糊像素,以用来替换虚化位图数据的渐变虚化区内像素。籍此模拟出长焦镜头的景深拍摄效果。果。果。

【技术实现步骤摘要】
一种模拟景深效果的拍照方法及其移动终端


[0001]本专利技术涉及摄像
,尤其涉及一种模拟景深效果的拍照方法及其移动终端。

技术介绍

[0002]随着手机性能的不断提高,手机拍照技术也越来越好,用户不用买专业的相机就可以拍出满意的照片,现在很多用户都喜欢用手机自拍,使得手机除了通讯功能外又多了一份娱乐性。
[0003]目前,手机及平板电脑等移动终端大多配置有前后置摄像头,使移动终端用户能够轻松实现拍照或自拍。然而一个现实的问题在于,现有大多中低端手机或平板电脑因为成本问题,其后置摄像头通常不会配置长焦镜头,而前置摄像头配置长焦镜头的更是寥寥无几。
[0004]为此此类中低端移动设备在拍摄照片时,无法通过自身镜头性能,实现长焦镜头的景深虚化拍摄效果,使得自身拍照体验与带有长焦镜头的移动设备形成较大的使用体验落差。
[0005]而现有技术为了解决该问题,曾提出了《一种基于OpenGL实现景深效果的方法》(专利公开号CN102750726B)其方案主要通过:获取图像的原始色彩缓存信息,所述原始色彩缓存信息包括深度缓存信息和色彩缓存信息;根据所述深度缓存信息和所述色彩缓存信息计算新的色彩缓存信息;计算所述图像的像素点的泊松分布圆直径,根据所述像素点的泊松分布圆直径计算图像层级信息;根据所述原始色彩缓存信息、所述新的色彩缓存信息、所述像素点的泊松分布圆直径和所述图像层级信息计算最终的色彩缓存信息并对所述图像进行渲染。本专利技术的实施例中,通过基于OpenGL的Mipmap原理与泊松分布结合,计算不同层级的图像场景信息实现景深,提高了实现景深的效率和效果。
[0006]然而该现有技术的缺陷在于,其方案依赖于GPU性能进行运算处理,但矛盾的是,现有的中低端移动设备的GPU性能却较弱,因此即便采用该方案进行虚化处理后的预览帧,也可能仅为10fps左右,预览时会有明显卡顿现象,可见该现有技术应用在GPU性能较弱的中低端移动设备时,显然无法达到良好的使用体验。

技术实现思路

[0007]鉴于此,为了改善现有技术的缺陷,在减少对GPU性能依赖的同时,也能模拟景深拍摄效果,达到良好的使用体验,本专利技术提供一种模拟景深效果的拍照方法及其移动终端方案。
[0008]为了实现上述目的,本专利技术的第一个方面,提供了一种模拟景深效果的拍照方法,用于安卓系统终端,其步骤包括:
[0009]S1设置位图数据的渐变虚化区、焦点区、渐变虚化系数及虚化系数;
[0010]S2监测到模拟景深事件被触发时,捕获相机预览帧作为待虚化位图数据及原图位
图数据;
[0011]S3设置RenderScript调用CPU使用虚化系数对待虚化位图数据进行高斯模糊处理计算,获取虚化位图数据;
[0012]S4以原图位图数据的焦点区内像素,替换虚化位图数据的焦点区内像素;
[0013]S5依据渐变虚化系数,处理原图位图数据中的渐变虚化区,获取渐变模糊像素,以用来替换虚化位图数据的渐变虚化区内像素。
[0014]其中在可能的优选实施方式中,获取渐变模糊像素的计算过程包括:设A为虚化位图数据,B为原图位图数据,S为渐变虚化系数,计算公式F=A*(1

S)+B*S,以获取渐变模糊像素F。
[0015]其中在可能的优选实施方式中,相机预览帧的捕获步骤包括:
[0016]S21调用Camera类的open方法打开相机并得到Camera实例对象;
[0017]S22定义TextureView并使用其作为Camera预览显示的View;
[0018]S23实例化SurfaceTextureListener类并通过setSurfaceTextureListener方法设置给TextureView,当TextureView视图可用时,回调SurfaceTextureListener类的onSurfaceTextureAvailable方法获取到SurfaceTexture纹理对象;
[0019]S24把获取到的纹理对象作为setPreviewTexture方法的参数设置给Camera对象,TextureView成功显示Camera预览数据;
[0020]S25调用TextureView类内置的getBitmap方法获取到Camera的实时预览帧Bitmap位图数据。
[0021]其中在可能的优选实施方式中,设置位图数据的渐变虚化区、焦点区的步骤包括:
[0022]S11定义内区与外区,其中外区与内区相叠,且内区内没有虚化效果,为焦点区,而外区与内区非相叠区域为渐变虚化区,处理中心为焦点区和渐变虚化区的中心;
[0023]S12通过自定义类Blurlnfo创建一个包括:处理中心的X、Y坐标,内区尺寸、外区尺寸参数的实例,作为smoothRender的参数info。
[0024]其中在可能的优选实施方式中,设置RenderScript调用CPU使用虚化系数对待虚化位图数据进行高斯模糊处理计算的步骤包括:
[0025]S31通过Allocation类内置createFromBitmap方法从待虚化位图创建一个分配input对象;
[0026]S32通过Allocation类内置createTyped方法创建一个分配output对象,类型为input类型;
[0027]S33调用RenderScript类内置setRadius方法设置模糊的程度;把创建的分配input对象作为RenderScript类内置setlnput方法的参数,设置模糊的输入分配;
[0028]S34把创建的分配output对象作为RenderScript类内置forEach方法的参数,将筛选器应用到输入分配并保存到分配output中;
[0029]S35调用Allocation类内置copyto方法从分配output对象中复制到Bitmap,以获得虚化位图数据。
[0030]为了实现上述目的,根据本专利技术的第二个方面,提供了一种移动终端,采用安卓系统,其中当其启动拍照程序时,所述移动终端执行上述任一所述的模拟景深效果的拍照方法的步骤。
[0031]为了实现上述目的,根据本专利技术的第三个方面,提供了一种移动终端,采用安卓系统,其包括:摄像头,控制器,处理器,显示器,存储器,其中,所述存储器中存有预设的位图数据的渐变虚化区、焦点区、渐变虚化系数S及虚化系数;所述控制器用于收到模拟景深事件被触发时,令处理器调用Camera类的open方法打开摄像头并得到Camera实例对象;定义TextureView并使用其作为Camera预览显示的View;实例化SurfaceTextureListener类并通过setSurfaceTextureListener方法设置给TextureView,当TextureView视图可用时,回调SurfaceTextureListener类的onSurfaceTextureAvailabl本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模拟景深效果的拍照方法,用于安卓系统终端,其特征在于步骤包括:S1设置位图数据的渐变虚化区、焦点区、渐变虚化系数及虚化系数;S2监测到模拟景深事件被触发时,捕获相机预览帧作为待虚化位图数据及原图位图数据;S3设置RenderScript调用CPU使用虚化系数对待虚化位图数据进行高斯模糊处理计算,获取虚化位图数据;S4以原图位图数据的焦点区内像素,替换虚化位图数据的焦点区内像素;S5依据渐变虚化系数,处理原图位图数据中的渐变虚化区,获取渐变模糊像素,以用来替换虚化位图数据的渐变虚化区内像素。2.根据权利要求1所述的模拟景深效果的拍照方法,其特征在于,获取渐变模糊像素的计算过程包括:设A为虚化位图数据,B为原图位图数据,S为渐变虚化系数,计算公式F=A*(1

S) + B*S,以获取渐变模糊像素F。3.根据权利要求1所述的模拟景深效果的拍照方法,其特征在于,相机预览帧的捕获步骤包括:S21调用Camera类的open方法打开相机并得到Camera实例对象;S22定义TextureView并使用其作为Camera预览显示的View;S23实例化SurfaceTextureListener类并通过setSurfaceTextureListener方法设置给TextureView,当TextureView视图可用时,回调SurfaceTextureListener类的onSurfaceTextureAvailable方法获取到SurfaceTexture纹理对象;S24把获取到的纹理对象作为setPreviewTexture方法的参数设置给Camera对象,TextureView成功显示Camera预览数据;S25调用TextureView类内置的getBitmap方法获取到Camera的实时预览帧Bitmap位图数据。4.根据权利要求1所述的模拟景深效果的拍照方法,其特征在于,设置位图数据的渐变虚化区、焦点区的步骤包括:S11定义内区与外区,其中外区与内区相叠,且内区内没有虚化效果,为焦点区,而外区与内区非相叠区域为渐变虚化区,处理中心为焦点区和渐变虚化区的中心;S12通过自定义类BlurInfo创建一个包括:处理中心的X、Y坐标,内区尺寸、外圆尺寸参数的实例,作为smoothRender的参数info。5.根据权利要求1所述的模拟景深效果的拍照方法,其特征在于,设置RenderScript调用CPU使用虚化系数对待虚化位图数据进行高斯模糊处理计算的步骤包括:S31通过Allocation类内置createFromBitmap方法从待虚化位图创建一个分配input对象;S32通过Allocation类内置createTyped方法创建一个分配output对象,类型为input类型;S33调用RenderScript类内置setRadius方法设置模糊的程度;把创建的分配input对象作为RenderScript类内置setInput方法的参数,设置模糊的输入分配;S34把创建的分配output对象作为RenderScript类内置forEach方法的参数,将筛选器应用到输入分配并保存到分配output中;
S35调用Allocation类内置copyto方法从分配output对象中复制到Bitm...

【专利技术属性】
技术研发人员:张旭郭斌罗然
申请(专利权)人:上海卓易科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1