Camera2 vs Camera1

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Camera2 vs Camera1相关的知识,希望对你有一定的参考价值。

参考技术A

CameraManager:
摄像头管理器,专门用于检测系统摄像头、打开系统摄像头。除此之外,调用CameraManager的getCameraCharacteristics(String)方法即可获取指定摄像头的相关特性。在Camera打开之前主要操作CameraManager,打开后主要操作CameraCaptureSession。实例:getSystemService(Context.CAMERA_SERVICE);
CameraCharacteristics
摄像头属性,相当于原CameraInfo。通过CameraManager获取指定id的摄像头属性。 通过获取Camera属性信息,配置Camera输出,如FPS,大小,旋转等。实例获取:mCameraManager.getCameraCharacteristics(currentCameraId);
CameraDevice
代表系统摄像头,该类的功能类似于早期的Camera类。用于创建CameraCaptureSession和关闭摄像头。 通过CameraManager打开Camera,在StateCallback中会得到CameraDevice实例;
CameraCaptureSession
Camera打开后主要和CameraCaptureSession打交道,CameraCaptureSession建立了一个和Camera设备的通道,当这个通道建立完成后就可以向Camera发送请求获取图像。当程序需要预览、拍照时,都需要先通过该类的实例创建Session。而且不管预览还是拍照,也都是由该对象的方法进行控制的,其中控制预览的方法为setRepeatingRequest();控制拍照的方法为capture()。为了监听CameraCaptureSession的创建过程,以及监听CameraCaptureSession的拍照过程,Camera v2 API为CameraCaptureSession提供了StateCallback、CaptureCallback等内部类;
CaptureRequest
当程序调用setRepeatingRequest()方法进行预览时,或调用capture()方法进行拍照时,都需要传入CaptureRequest参数。CaptureRequest代表了一次捕获请求,用于描述捕获图片的各种参数设置,比如对焦模式、曝光模式……总之,程序需要对照片所做的各种控制,都通过CaptureRequest参数进行设置;
CaptureRequest.Builder
CaptureRequest.Builde中主要结构是一个Map,Builder构建后得到CaptureRequest;

Camera
framework中api1的接口类,定义open、startPreview、takePicture、AutoFocus等标准的接口实现。实例方式:mCamera = Camera.open(camId);
Camera.Parameters
参数设置,通过camera内部类Parameters操作实现,如设置帧率,设置图片格式,预览尺寸等具体的设置接口,提供set/get函数;
Camera.CameraInfo
元数据获取,通过camera内部类CameraInfo实现,这里只能获取不能修改;

cesium 设置和移动camera相机(工具篇)

参考技术A 1,相机的移动 使用move方法可以朝一个方向移动特定的距离,单位为米。相机移动时位置会发生变化,相机的朝向不变

移动方法:Camera.prototype.move = function (direction, amount)

相机向前移动:moveForward(amount) amount步长:米

相机向后移动:moveBackward(amount) amount步长:米

相机向上移动:moveUp(amount) amount步长:米

相机向下移动:moveDown(amount) amount步长:米

相机向左移动:moveLeft(amount) amount步长:米

相机向右移动:moveRight(amount) amount步长:米

2,相机在固定位置的旋转

方法:Camera.prototype.look = function (axis, angle) 实现原理是给定一个旋转轴和角度,用于四元数计算,然后根据四元数求得旋转矩阵,再根据旋转矩阵更新direction,up,right方向

相机向左看:.lookLeft(amount) amount弧度

相机向右看:.lookRight(amount) amount弧度

相机向上看:.lookUp(amount) amount弧度

相机向下看:.lookDown(amount) amount弧度

朝前方向逆时针旋转相机:.twistLeft(amount) amount弧度

朝前方向顺时针旋转相机:.twisRight(amount) amount弧度

以上是关于Camera2 vs Camera1的主要内容,如果未能解决你的问题,请参考以下文章

我无法用 camera2 检测到人脸

camera2人脸检测回调

无法导入导入 android.hardware.camera2 类

camera2输出到Bitmap

Android Camera API/Camera2 API 相机预览及滤镜贴纸等处理

Android开发Camera2相关