【引子】
- 本篇文章将围绕CameraKey对常用的相机功能总结一份使用指南。
- API文档:https://developer.dji.com/cn/api-reference-v5/android-api/Components/IKeyManager/Key_Camera_CameraKey.html
【相机模式】
- 每一台相机都有不同的相机模式,相机模式通过KeyCameraMode去设定,你可以通过KeyCameraModeRange去查询该相机支持什么相机模式。
- PHOTO_NORMAL是单拍模式,在该模式下,默认该相机的所有镜头会参与拍照,你可以通过KeyCaptureCameraStreamSettings去设置哪些镜头参与拍照。
- VIDEO_NORMAL是录像模式,在该模式下,默认该相机的所有镜头会参与录像,你可以通过KeyRecordCameraStreamSettings去设置哪些镜头参与录像。
- PHOTO_HYPER_LIGHT是低光智能模式,在光线较暗的环境下,相机会自动模拟长曝光进行拍摄,可以把物体拍摄的更加清晰,仅在变焦镜头在5倍变焦以上生效。
- PHOTO_INTERVAL是定时拍照模式,它可以设置相机在规定时间后进行单拍。你可以通过KeyPhotoIntervalShootSettings来设置定时拍照参数,其中count的意思是总共拍摄几张照片,time是时间间隔(必须大于2秒),设置好后调用KeyStartShootPhoto开启拍照,调用KeyStopShootPhoto结束拍照。
- PHOTO_SUPER_RESOLUTION是超清矩阵矩阵拍照模式,你可以用KeySuperResolutionCaptureArea设置超清矩阵拍照区域,用KeySuperResolutionInfo监听拍照状态。设置好后调用KeyStartShootPhoto开启拍照,调用KeyStopShootPhoto结束拍照。
- PHOTO_PANORAMA是全景拍照模式,你可以通过KeyPhotoPanoramaMode设置全景拍照详细参数与KeyPhotoPanoramaProgress判断拍照进度。设置好后调用KeyStartShootPhoto开启拍照,调用KeyStopShootPhoto结束拍照。在此模式下拍照时,飞行去需处在飞行状态。拍摄完后的一组照片你需要通过第三方库进行频接和渲染,MSDK不提供技术支持。
【曝光】
- 你需要确认当前的显示画面为你要设置的镜头的画面,红外镜头不可设置曝光模式。曝光模式通过KeyExposureMode来设置,你可以通过KeyExposureModeRange查询相机的该镜头支持什么曝光设置。
- 只有当曝光模式为PROGRAM时,才可以设置曝光补偿KeyExposureCompensation,设置范围可通过KeyExposureCompensationRange查询。
- 只有当曝光模式为PROGRAM时,才可以设置自动曝光锁定KeyAELockEnabled。该设置将曝光值固定。主要是面对,反差过大或纯色物品时使用。
- 只有当曝光模式为MANUAL时,才可以设置KeyISO和KeyShutterSpeed,有些镜头可能不支持设置,需提前调用KeyISORange和KeyShutterSpeedRange查询。
【变焦】
- 你需要确认当前的显示画面为你要设置的镜头的画面,在ZOOM画面下调用KeyCameraZoomRatios设置变焦镜头的混合变焦倍数,设置范围为2-200倍,最小精度为0.1。THERMAL画面下调用KeyThermalZoomRatios可设置红外镜头的数字变焦倍数,只可以设置1倍、2倍、4倍、8倍。
- 你可以通过KeyCameraZoomFocalLength获取当前变焦镜头的混合变焦焦距。
- 假如当你设置KeyCameraZoomRatios为9后,再获取得到的结果为8.997等近似值,这个是正常现象,因为变焦倍数仍然是变焦步长计算而来,大多数情况变焦倍数无法为整数。
【对焦】
- 你可以通过KeyCameraFocusMode设置对焦模式。
- MANUAL为手动对焦,你需要调整对焦环KeyCameraFocusRingValue进行对焦,MSDK不提供自动设置对焦环的公式,需要你自己设置对焦环条进行拖动设置,用肉眼观测是否对焦成功。
- AF为自动对焦,调用KeyCameraFocusTarget对屏幕的某一个点进行自动对焦。
- AFC为连续自动对焦。在此模式下,相机会以屏幕中心点为对焦目标,当被摄物体移动时,自动对焦系统能够实时根据焦点的变化调节镜头,让被摄物体一直保持清晰状态。
【红外】
- 想要设置和使用红外功能,当前显示画面必须设置为THERMAL。
- 设置KeyThermalTemperatureMeasureMode为SPOT将使红外镜头进入点测温模式,调用KeyThermalSpotMetersurePoint设置屏幕上的测温点,设置listener对KeyThermalSpotMetersureTemperature进行温度监听。
- 设置KeyThermalTemperatureMeasureMode为REGION将使红外镜头进入区域测温模式,调用KeyThermalRegionMetersureArea设置屏幕上的测温区域,设置listener对KeyThermalRegionMetersureTemperature进行温度监听。
- 设置KeyThermalGainMode会改变红外镜头的增益模式。当选择高增益时,相机对温度差异更灵敏,但相机测量的温度范围较小。低增益模式时,相机测量的温度范围较大,对温度差异灵敏度会降低。
- 设置KeyThermalPalette会改变红外镜头的调色盘,热成像图片中的颜色用来表示温度,画面中的温度范围将被映射到256个色阶上,在8bit的JPEG图片以及MP4视频中显示出来,每种调色盘对应不同的色阶。MSDK不提供色阶和温度的关系对应表。
- 设置KeyThermalIsothermEnabled将启用和禁用等温线功能,开启等温线功能可以更直观地看出指定温度区间的物体。通过高温、低温两个阈值来设置温度区间。等温线禁用时,所有256个值(8位)都用于场景的温度直方图。启用等温线后,只有128个值(0-127)与温度线性映射。然后将三个颜色区间(128-175)、(176-223)和(224-255)映射到用户定义的温度,以向用户突出显示它们。使用一些调色板(例如RAINBOW)会生成灰度级的热图像,红色、蓝色或绿色将用于突出显示的三个特定的温度。
- 设置KeyThermalDisplayMode将改变红外显示模式,在红外镜头下有仅红外和分屏两种模式。
【FAQ】
Q:如何设置照片或录像的格式。
A:先通过KeyPhotoFileFormatRange和KeyVideoFileFormatRange查询相机的该镜头的支持范围,再调用KeyPhotoFileFormat和KeyVideoFileFormat进行设置。
Q:如何监听是否拍摄成功?
A:当拍摄成功时,会有新的媒体文件产生,通过设置listener监听KeyNewlyGeneratedMediaFile可以得知。
Q:如何使用激光?
A:将KeyLaserWorkMode设置为OPEN_ON_DEMAND后,调用KeyLaserMeasureEnabled开启激光,通过建立listener对KeyLaserMeasureInformation进行激光测量数据监听。
Q:如何设置显示画面?
A:先通过KeyCameraVideoStreamSourceRange得知该相机支持的镜头显示画面,通过KeyCameraVideoStreamSource进行设置。
Q:如何获取相机朝向?
A:相机的朝向是由云台控制,因此相机朝向可以参考云台的姿态:第十二章:云台
评论
1 条评论
如何获取相机朝向?
请登录写评论。