Camera1、Camera2 API的使用
Camera1
使用流程:
- 检查相机权限(android.permission.CAMERA)
- Camera.getNumberOfCameras():获取相机硬件数量;
- Camera.getCameraInfo():获取指定相机信息;
- Camera.open():打开指定相机;
- camera.getParameters():获取相机参数并设置;
- camera.setPreviewTexture(st):设置用于相机预览的surfaceTexutre
- camera.setDisplayOrientation(90):设置预览旋转角度
- camera.startPreview():开始预览
关键类:
Camera 相机类,定义了open、startPreview、takePicture、AutoFocus、setDisplayOrientation、setPreviewTexture等方法。
实例方式:mCamera = Camera.open(camId)
Camera.CameraInfo 相机信息类,元数据获取
Camera.Parameters 相机参数类,参数设置,定义了setFocusMode,setPreviewSize、setFlashMode等方法,通过mCamera.getParameters()获取
Camera2
使用流程:
- 检查相机权限(android.permission.CAMERA)
- cameraManager = (CameraManager) getSystemService(CAMERA_SERVICE);
- cameraManager.getCameraIdList():获取相机硬件id集合
- cameraManager.getCameraCharacteristics(cameraId):获取相机信息
- cameraManager.openCamera(cameraId,cameraCallback,null); 开启相机
- CameraDevice.StateCallback回调中获取cameraDevice
- cameraDevice.createCaptureSession(surfaces,new CameraCaptureSession.StateCallback(),null) 创建捕获会话,surfaces作为捕获的图像数据的输出的目标
- CameraCaptureSession.StateCallback回调中获取到CameraCaptureSession
- CaptureRequest.Builder 创建请求,通过键值对的方式设置参数
- cameraCaptureSession.setRepeatingRequest(previewRequest,
captureCallback, null); 发送请求
关键类:
CameraManager 相机管理器,在Camera打开之前主要操作CameraManager,打开后主要操作CameraCaptureSession。
getSystemService(Context.CAMERA_SERVICE);
CameraCharacteristics 摄像头属性,相当于Camera1的CameraInfo。 通过获取Camera属性信息,配置Camera输出,如FPS,大小,旋转等。
mCameraManager.getCameraCharacteristics(currentCameraId);
CameraDevice 用于创建CameraCaptureSession和关闭摄像头。
cameraManager.openCamera(cameraId,cameraCallback,null);
cameraCallback的回调中获取到实例对象CameraCaptureSession 相机捕获会话,CameraCaptureSession建立了一个和Camera硬件设备的会话通道,可以通过这个会话向Camera发送请求获取图像。
setRepeatingRequest():控制预览;capture():控制拍照。CaptureRequest.Builder 请求构造器,Map,以键值对的方式设置请求参数。
CaptureRequest 预览或拍照,都需要CaptureRequest参数。CaptureRequest代表了一次捕获请求,其中包含了捕获图片的参数设置,比如对焦模式、曝光模式等
Camera1、Camera2 API的使用相关推荐
- android 自定义录像机,android-camera2 - 将自定义捕获请求构建器选项设置为使用Camera2 API捕获图像以使用OpenCV库进行摄像机校准 - 堆栈内存溢出...
我们正在使用Camera2 API捕获N张图像,而未设置任何自定义捕获请求构建器选项. 我们正在使用这些图像通过OpenCV Android库411进行相机校准. 然后,我们正在使用OpenCV An ...
- android surfaceview 大小_Android 使用Camera2 API采集视频数据
Android 视频数据采集系列的最后一篇出炉了,和前两篇文章想比,这篇文章从系统API层面进行一些探索,涉及到的细节更多.初次接触 Camera2 API 会觉得它的使用有些繁琐,涉及到的类有些多, ...
- android camera捕捉,通过android camera2 API捕捉4:3相机图片与16:9传感器阵列相机
我想从使用Camera2 API(Android 5.0版本中添加)的Android fron-facing相机以4:3的宽高比捕捉视频.它工作正常,除非相机有16:9传感器阵列(作为三星Galaxy ...
- android 颜色反转 api,来自Android camera2 API的图像数据在Galaxy S5上翻转和压缩
我正在实现一个应用程序,它使用来自相机的实时图像进行实时图像处理.使用现已弃用的android.hardware.Camera,它有限制地工作;提高灵活性和性能我想使用新的android.hardwa ...
- android Camera2 API使用详解
原文:android Camera2 API使用详解 由于最近需要使用相机拍照等功能,鉴于老旧的相机API问题多多,而且新的设备都是基于安卓5.0以上的,于是本人决定研究一下安卓5.0新引入的Came ...
- android camera2 API流程分析
Android camera2 API流程分析 Android5.0之后,新推出来了一个类,android.hardware.camera2,与原来的camera的类实现照相和拍视频的流程有所不同,原 ...
- 第48讲 Android Camera2 API FD人脸检测
本讲是Android Camera专题系列的第48讲,我们介绍Android Camera2 API专题的FD人脸检测,包括如下内容: FD Metadata FD模式 FD Results FD 实 ...
- android Camera2 API适配百度人脸识别SDK
Camera2 API替换Camera API之后的问题 camera和camera2的最主要区别之一就是camera2不再支持nv21的输出,通常我们为了使视频预览更加的流畅,会采用YUV_420_ ...
- android camera hal3 分析,HAL3 enabler下载-HAL3 enabler(开启camera2 api)下载v5.0 安卓版-西西软件下载...
HAL3 enabler(开启camera2 api)让你无需Magisk模块就能够轻松的开启手机当中的camera2 api功能.对于想要将手机当中的相机功能玩出更多花样的人来说,这绝对是一款极为便 ...
- android dng图片,android - 使用Camera2 API拍摄dng图片 - 堆栈内存溢出
我正在创建一个应用程序,该应用程序以.dng格式拍摄图片以对其进行处理. 我正在使用camera2 API. 我可以拍照并将其保存到手机中,但格式为.jpg. 但是,当我更改代码以使用.dng扩展名保 ...
最新文章
- java调用PageOffice生成word
- Swift中关于可选类型(?)与强制解析(!)的特性
- C语言快速幂取模算法小结
- CVPR 2020 开源论文 | 多种可能性行人未来路径预测
- FewRel 2.0数据集:以近知远,以一知万,少次学习新挑战
- 2016matlab安装
- 60TB 数据量的作业从 Hive 迁移到 Spark 在 Facebook 的实践
- C、C++语言中参数的压栈顺序
- 星云的Linux专用学习手册
- Android PreferenceScreen介绍
- 【yishen】黑苹果 声卡驱动
- 创建一个三维空间形状,算立方体,球体,正三棱锥表面积体积
- 编程吸金榜:你排第几?网友神回应了 !
- excel表格如何打斜杠
- 第一篇 厚黑学 二、厚黑学
- QQ开始对每日添加好友人数作出限制(转)
- 开发推荐书单 程序员必读书目推荐 测试必读书目 管理必读 技术组长必读 前端开发必读
- 金字塔原理(6)- 确定逻辑顺序
- 共模电压 matlab,三电平并网逆变器共模电压抑制方法研究
- c语言中管道符作用,由Linux中管道的buffer,浅谈C语言中char类型字符串拷贝使用strcpy()和=赋值符号的区别...