Camera APP 部分所设置的参数

本文详细介绍了MTK平台上相机的各项参数及其含义,包括变焦、磨皮等级、人脸检测、拍照模式等,并提供了dumpParameters函数用于打印所有相机参数。

在调试的时候利用下面这个函数将 Camera AP 部分所设置的参数全部 dump 出来了,真是多啊!

这里仅限于 MTK 平台,MTK 自己在相机这块添加了许多功能,所以看起来就有一大堆的参数。

调用此 dumpParameters() 函数可以打印出所有相机的参数出来。
    public static void dumpParameters (Parameters parameters) {
        String flattened = parameters. flatten();
        StringTokenizer tokenizer = new StringTokenizer(flattened, ";" );
        Log.d(TAG , "Dump all camera parameters:" );
        while (tokenizer.hasMoreElements()) {
            Log. d(TAG, tokenizer.nextToken());
        }
    }


相机参数简单介绍:
D/CAM_Util(25287): Dump all camera parameters:
D/CAM_Util(25287): zoom=0  //变焦参数,为0表示未变焦
D/CAM_Util(25287): fb-smooth-level-max=4  // 磨皮等级设置,最高为4级
D/CAM_Util(25287): max-num-detected-faces-hw=15 //硬件支持的最多可以检测人脸张数 15张
D/CAM_Util(25287): cap-mode=normal //拍照模式
D/CAM_Util(25287): aflamp-mode-values=off,on,auto //暂时不知道
D/CAM_Util(25287): whitebalance=auto //白平衡参数,自动白平衡
D/CAM_Util(25287): afeng-min-focus-step=0 //暂时未知
D/CAM_Util(25287): preview-format-values=yuv420sp,yuv420p,yuv420i-yyuvyy-3plane //预览数据格式
D/CAM_Util(25287): rotation=0 //预览数据旋转角度
D/CAM_Util(25287): jpeg-thumbnail-quality=100 //照片缩略图压缩比
D/CAM_Util(25287): preview-format=yuv420sp //当前预览数据格式
D/CAM_Util(25287): iso-speed=auto //iso设置,当前是自动iso
D/CAM_Util(25287): flash-mode-values=off,on,auto,red-eye,torch //闪光灯各项设置值
D/CAM_Util(25287): hue-values=low,middle,high //色度设置值
D/CAM_Util(25287): aflamp-mode=off //暂时未知
D/CAM_Util(25287): cshot-indicator-supported=true //暂时未知
D/CAM_Util(25287): preview-frame-rate=30 //当前预览帧率
D/CAM_Util(25287): jpeg-thumbnail-width=160 //照片缩略图宽度为 160个像素
D/CAM_Util(25287): video-size=640x480 //当前录像尺寸
D/CAM_Util(25287): scene-mode-values=auto,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,hdr  //当前支持的场景模式
D/CAM_Util(25287): preview-fps-range-values=(5000,60000) //暂时未知
D/CAM_Util(25287): contrast-values=low,middle,high //当前支持的对比度设置
D/CAM_Util(25287): preview-size-values=176x144,320x240,352x288,480x320,480x368,640x480,720x480,800x480,800x600,864x480,960x540,1280x720,1920x1080 //当前支持的拍照预览尺寸
D/CAM_Util(25287): preview-fps-range=5000,60000 //当前未知
D/CAM_Util(25287): min-exposure-compensation=-12 //最小曝光补偿设置值
D/CAM_Util(25287): antibanding=50hz //防牛顿环频率设置
D/CAM_Util(25287): max-num-focus-areas=1 //最大支持的对焦区域,为1表示只支持单点对焦
D/CAM_Util(25287): vertical-view-angle=49 //暂时未知
D/CAM_Util(25287): fb-smooth-level-min=-4 //人脸美化平滑等级最小值
D/CAM_Util(25287): fb-skin-color=0 //人脸美化皮肤颜色设置值
D/CAM_Util(25287): video-stabilization-supported=true //是否支持视频防抖
D/CAM_Util(25287): brightness_value=-34 //拍照亮度设置
D/CAM_Util(25287): saturation-values=low,middle,high //饱和度设置
D/CAM_Util(25287): eng-flash-duty-value=-1 //暂时未知
D/CAM_Util(25287): edge=middle //暂时未知
D/CAM_Util(25287): picture-format-values=jpeg //照片压缩格式
D/CAM_Util(25287): iso-speed-values=auto,100,200,400,800,1600 //当前支持的iso设置值
D/CAM_Util(25287): exposure-compensation-step=0.25 //曝光补偿步径值
D/CAM_Util(25287): eng-flash-duty-min=0 //暂时未知
D/CAM_Util(25287): picture-size=4160x3120 //当前设置的照片尺寸
D/CAM_Util(25287): saturation=middle //饱和度
D/CAM_Util(25287): whitebalance-values=auto,incandescent,fluorescent,warm-fluorescent,daylight,cloudy-daylight,twilight,shade //当前支持的白平衡设置
D/CAM_Util(25287): picture-format=jpeg //图片格式 
D/CAM_Util(25287): cshot-indicator=true //暂时未知
D/CAM_Util(25287): afeng-max-focus-step=0 //暂时未知
D/CAM_Util(25287): preferred-preview-size-for-video=1920x1080 //推荐的视频录制尺寸
D/CAM_Util(25287): hue=middle //色度
D/CAM_Util(25287): recording-hint=true //录像指示器
D/CAM_Util(25287): eng-focus-fullscan-frame-interval-max=65535 //暂时未知
D/CAM_Util(25287): video-stabilization=false //是否开启录像防抖
D/CAM_Util(25287): zoom-supported=true //是否支持变焦
D/CAM_Util(25287): fb-smooth-level=0 //当前人脸美化平滑等级最小值
D/CAM_Util(25287): fb-sharp=0 //人脸美化锐度
D/CAM_Util(25287): contrast=middle //对比度
D/CAM_Util(25287): scene-mode=auto //场景模式为自动
D/CAM_Util(25287): jpeg-quality=100 //照片压缩比例为100%,即为未压缩
D/CAM_Util(25287): burst-num=1 //当前拍摄张数
D/CAM_Util(25287): eng-flash-duty-max=9 //暂时未知
D/CAM_Util(25287): video-size-values=176x144,480x320,640x480,864x480,1280x720,1920x1080 //当前支持的录像尺寸
D/CAM_Util(25287): preview-size=800x600 //录像预览尺寸
D/CAM_Util(25287): focal-length=3.5 //镜头焦距
D/CAM_Util(25287): eng-focus-fullscan-frame-interval-min=0 //暂时未知
D/CAM_Util(25287): cap-mode-values=normal,face_beauty,continuousshot,smileshot,autorama,mav,asd,motiontrack //当前平台支持的拍照模式
D/CAM_Util(25287): preview-frame-rate-values=15,24,30 //当前平台支持的预览帧率 fps
D/CAM_Util(25287): max-num-metering-areas=9 //当前平台支持的最大测光区域为9块
D/CAM_Util(25287): fb-sharp-max=4 //人脸美化锐度最大值
D/CAM_Util(25287): sensor-type=252 //传感器类型
D/CAM_Util(25287): focus-mode-values=auto,macro,infinity,continuous-picture,continuous-video,manual,fullscan
//当前平台支持的对焦模式
D/CAM_Util(25287): fb-sharp-min=-4 //人脸美化锐度最小值
D/CAM_Util(25287): jpeg-thumbnail-size-values=0x0,160x128,320x240 //当前平台支持的照片缩略图尺寸
D/CAM_Util(25287): zoom-ratios=100,114,132,151,174,200,229,263,303,348,400 //当前平台支持的变焦比例,最大4倍
D/CAM_Util(25287): picture-size-values=320x240,640x480,1024x768,1280x720,1280x768,1280x960,1600x1200,1920x1088,2048x1536,2560x1440,2560x1920,3264x2448,3328x1872,2880x1728,3600x2160,4096x2304,4096x3072,4160x3120 //当前摄像头支持的所有拍照尺寸
D/CAM_Util(25287): edge-values=low,middle,high //暂时未知
D/CAM_Util(25287): horizontal-view-angle=61 //暂时未知
D/CAM_Util(25287): brightness=middle //亮度设置
D/CAM_Util(25287): jpeg-thumbnail-height=128 //照片缩略图高 128pixel
D/CAM_Util(25287): eng-flash-step-max=0 //暂时未知
D/CAM_Util(25287): doc_level=-1 //自定义参数,美颜等级
D/CAM_Util(25287): smooth-zoom-supported=true //是否支持平滑变焦
D/CAM_Util(25287): capfname=/sdcard/DCIM/cap00 //暂时未知,貌似是照片存储路径
D/CAM_Util(25287): zsd-mode=off //零秒快拍模式是否有开启
D/CAM_Util(25287): focus-mode=auto //对焦模式,auto表示自动对焦
D/CAM_Util(25287): fb-skin-color-max=4 //人脸美化皮肤颜色最大值
D/CAM_Util(25287): auto-whitebalance-lock-supported=true //自动白平衡锁定支持
D/CAM_Util(25287): fb-skin-color-min=-4 //人脸美化皮肤颜色最小值
D/CAM_Util(25287): video-frame-format=yuv420p //录像数据格式
D/CAM_Util(25287): max-num-detected-faces-sw=0 //软件检测到的人脸张数,0表示未检测到
D/CAM_Util(25287): max-exposure-compensation=12 //最大曝光补偿等级
D/CAM_Util(25287): max-num-ot=1 //暂时未知
D/CAM_Util(25287): video-snapshot-supported=true //录像的时候是否支持拍照
D/CAM_Util(25287): exposure-compensation=0 //当前曝光补偿值
D/CAM_Util(25287): brightness-values=low,middle,high //亮度设置值
D/CAM_Util(25287): flash-mode=off //闪光灯设置 -关
D/CAM_Util(25287): effect-values=none,mono,negative,sepia,aqua,whiteboard,blackboard //当前平台支持的滤镜设置
D/CAM_Util(25287): eng-flash-step-min=0 //暂时未知
D/CAM_Util(25287): max-zoom=10 //最大变焦倍数 ?
D/CAM_Util(25287): effect=none //当前未开启任何滤镜效果
D/CAM_Util(25287): focus-distances=0.95,1.9,Infinity //对焦距离 ?
D/CAM_Util(25287): mtk-cam-mode=0 //相机模式设置
D/CAM_Util(25287): zsd-mode-values=off,on //零秒快拍设置值
D/CAM_Util(25287): auto-exposure-lock-supported=true //是否支持自动曝光锁定
D/CAM_Util(25287): antibanding-values=off,50hz,60hz,auto //防牛顿环频率设置


今天看到Android developer 网页上也有介绍相机部分的相关参数和标准接口,附上链接如下:

http://developer.android.com/reference/android/hardware/Camera.Parameters.html

<think>嗯,用户想了解如何在Camera应用中实现双摄虚化算法。首先,我需要回忆一下双摄虚化算法的基本概念和实现流程。根据之前提供的引用内容,双摄算法需要主辅摄像头同步获取图像,然后进行处理,输出主摄图像并添加虚化效果。那具体在Camera应用中要怎么实现呢? 首先,可能需要从系统架构层面考虑,比如Camera应用层需要调用哪些API,如何获取双摄的图像数据。然后,双摄同步是关键,这涉及到HAL层的支持,确保主辅摄像头的时间同步和空间对齐。接下来是深度图的生成,这部分可能需要立体匹配算法或者基于双摄的视差信息计算。得到深度图后,如何应用虚化效果呢?可能需要高斯模糊或者类似的处理,根据深度信息调整模糊程度。 另外,用户提到的是Camera App的实现方法,所以可能需要分步骤讲解,从硬件支持到软件实现。比如,首先检查设备是否支持双摄,然后配置双摄的参数,确保同步,接着获取图像数据,处理生成深度图,最后应用虚化效果。同时,性能优化也很重要,比如多线程处理或使用GPU加速。 还要注意引用的资料,引用[2]提到双摄算法需要同步的主辅图像,用户只能看到主摄图像。所以,在应用层可能需要将处理后的主摄图像显示出来,而辅摄图像仅用于深度计算。此外,算法集成可能涉及到HAL层和算法库的调用,这部分可能需要Native层的开发,比如使用C++或NDK。 开发教程方面,可能需要指导用户如何在Android应用中访问双摄硬件,使用Camera2 API获取双流数据,处理同步问题,然后调用算法库进行深度估计和虚化处理。同时,调试和优化效果也是关键步骤,比如调整虚化强度和边缘处理的准确性。 可能遇到的问题包括双摄同步不准确导致深度图错误,处理性能不足导致延迟,或者虚化效果不自然。这时候需要优化算法,或者利用硬件加速。此外,不同设备的双摄参数可能不同,需要做兼容性处理。 总结一下,实现步骤可能包括:硬件支持检查、双摄配置与同步、图像获取、深度图生成、虚化处理、效果优化。每个步骤都需要详细解释,并且结合代码示例说明如何在Android应用中实现这些功能。</think>### 双摄虚化算法的Camera App实现方法 #### 一、硬件与系统层支持 1. **双摄硬件要求** 需设备配备物理双摄像头(主摄+辅摄),且支持同步曝光与时间戳对齐[^2]。 ```java // 检查设备是否支持逻辑多摄像头 CameraManager manager = (CameraManager) getSystemService(Context.CAMERA_SERVICE); String[] cameraIds = manager.getCameraIdList(); for (String id : cameraIds) { CameraCharacteristics characteristics = manager.getCameraCharacteristics(id); Integer facing = characteristics.get(CameraCharacteristics.LENS_FACING); // 判断是否为多摄像头组 } ``` 2. **HAL层配置** 在相机HAL层实现双摄同步接口,确保主辅摄像头的时间差在毫秒级以内,空间对齐需通过标定参数补偿。 #### 二、图像数据获取 1. **双流配置** 使用Camera2 API同时打开两个摄像头数据流: ```java // 主摄像头配置 SessionConfiguration mainSessionConfig = new SessionConfiguration(...); // 辅摄像头配置 SessionConfiguration auxSessionConfig = new SessionConfiguration(...); // 创建同步请求组 List<CaptureRequest> requests = Arrays.asList(mainRequest, auxRequest); cameraDevice.createCaptureSessionByOutputConfigurations(outputConfigs, new CameraCaptureSession.StateCallback() {...}); ``` 2. **元数据同步** 通过`CameraMetadata#getSyncFrameNumber`获取同步帧序列号,需处理时间戳偏差和空间位移补偿。 #### 三、深度图生成(核心算法) 1. **立体匹配** 使用SGBM(Semi-Global Block Matching)算法计算视差图: $$d = \arg\min_d \sum_{p} C(p,d) + \sum_{q∈N_p} P1·T[|d_p-d_q|=1] + P2·T[|d_p-d_q|>1]$$ 2. **深度优化** 通过双边滤波消除噪声,结合IMU数据补偿运动模糊: ```cpp // OpenCV示例 cv::StereoBM::create(numDisparities, blockSize); cv::ximgproc::DisparityWLSFilter::create(...); ``` #### 四、虚化效果实现 1. **分层处理** 根据深度值划分前景/背景区域,使用GPU加速的Gaussian模糊: ```glsl // GLSL着色器代码片段 uniform sampler2D depthTexture; void main() { float depth = texture(depthTexture, uv).r; float blurRadius = mix(0.0, MAX_RADIUS, smoothstep(NEAR,FAR,depth)); // 动态模糊计算 } ``` 2. **边缘过渡** 采用alpha混合消除锐利边界,通过深度梯度控制混合范围: $$ \alpha = 1 - \exp(-\lambda|\nabla d|) $$ #### 五、性能优化 1. **异构计算** 将密集计算部署到DSP/NPU: ```java // 使用Android Renderscript ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); blurScript.setRadius(radius); blurScript.setInput(inputAllocation); ``` 2. **多线程架构** 分离图像采集、算法处理和UI渲染线程,通过环形缓冲区降低延迟。 #### 六、调试与调优 1. **标定工具开发** 实现棋盘格标定界面,计算双摄外参矩阵: $$ R = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix}, \quad T = \begin{bmatrix} t_x \\ t_y \\ t_z \end{bmatrix} $$ 2. **效果评估** 构建主观测试集(人像/静物/动态场景),量化模糊自然度和边缘准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值