美文网首页
关于ios 自定义相机的白平衡调节

关于ios 自定义相机的白平衡调节

作者: 秋燕归 | 来源:发表于2019-04-22 08:11 被阅读0次

对于相机的设置一般都是操作AVCaptureDevice这个类,首先上官方文档:AVCaptureDevice

对于白平衡可能涉及到几个概念(以下是针对官方提供的文档,通过自己427分 的四级英语翻译理解出来的,不对之处请指正)

1.增益 :AVCaptureWhiteBalanceGains
2.色温色调值:AVCaptureWhiteBalanceTemperatureAndTintValues
3.色度:AVCaptureWhiteBalanceChromaticityValues

对于第一个AVCaptureWhiteBalanceGains有一点需要特别注意,他是由blueGain、greenGain以及redGain三部分组成,且且且这三个的值范围在[1, maxWhiteBalanceGain]之间,如果超出范围会报一个异常

重点是怎么设置这些值

首先介绍下,白平衡的模式有三种:

1.AVCaptureWhiteBalanceModeLocked//锁定
2.AVCaptureWhiteBalanceModeAutoWhiteBalance//自动
3.AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance//持续自动

只有在lock模式下才能设置白平衡的色温、色调、色度这些参数

官方对于白平衡提供了一些方法

设置增益值

- (void)setWhiteBalanceModeLockedWithDeviceWhiteBalanceGains:(AVCaptureWhiteBalanceGains)whiteBalanceGains completionHandler:(void (^)(CMTime syncTime))handler

通过增益值获取色度

-(AVCaptureWhiteBalanceChromaticityValues)chromaticityValuesForDeviceWhiteBalanceGains:(AVCaptureWhiteBalanceGains)whiteBalanceGains

通过色度获取增益值

- (AVCaptureWhiteBalanceGains)deviceWhiteBalanceGainsForChromaticityValues:(AVCaptureWhiteBalanceChromaticityValues)chromaticityValues

通过增益值获取色温色调

- (AVCaptureWhiteBalanceTemperatureAndTintValues)temperatureAndTintValuesForDeviceWhiteBalanceGains:(AVCaptureWhiteBalanceGains)whiteBalanceGains

通过色温色调获取增益值

- (AVCaptureWhiteBalanceGains)deviceWhiteBalanceGainsForTemperatureAndTintValues:(AVCaptureWhiteBalanceTemperatureAndTintValues)tempAndTintValues NS_AVAILABLE_IOS(8_0);

应用场景

有时候在自定义相机的时候需要手动调节白平衡的值一般UI是给定两个按钮和两个UISlider,一个按钮是自动,另一个是手动。一个slider是色温值,另一个是色调。用户点击调节白平衡的时候出现上述面板,同时给定当前白平衡的各个值。用户滑动slider时为设备设置对应的值。

我这边的做法是:

0.设置白平衡模式为AVCaptureWhiteBalanceModeLocked
1.用户滑动slider的时候获取到值,然后拿到template和tint
2.用这两个参数通过去构建AVCaptureWhiteBalanceTemperatureAndTintValues,得到色温色调值后,在通过调用temperatureAndTintValuesForDeviceWhiteBalanceGains去获取AVCaptureWhiteBalanceGains
3.获取到AVCaptureWhiteBalanceGains之后,去验证AVCaptureWhiteBalanceGains的有效性(redGain,blueGain,greenGain的范围都要在[1,maxWhiteBalanceGain]区间)
4.验证通过则通过调用setWhiteBalanceModeLockedWithDeviceWhiteBalanceGains设置增益

留个小尾巴

在初始化UI的时候UISlider那边需要给定一个最小值和最大值,我尝试用redGain=1,blueGain=1,greenGain=1和redGain=maxWhiteBalanceGain,blueGain=maxWhiteBalanceGain,greenGain=maxWhiteBalanceGain这两组临界值去获取最大最小template和tint结果返回的是同一个数值,如果您解决了这个问题,请留言,谢谢

相关文章

  • 关于ios 自定义相机的白平衡调节

    对于相机的设置一般都是操作AVCaptureDevice这个类,首先上官方文档:AVCaptureDevice 对...

  • 相机-白平衡

    相机-白平衡 白平衡是在任何拍摄场景的光源下,都能将白色的物体还原为白色。 相机的白平衡控制,就是相机在不同的光线...

  • 技术集合

    相机开发 iOS开发--AVFoundation自定义相机 iOS视频播放AVPlayer的视频内容拉伸设置 状态...

  • 关于相机白平衡设置

    很多摄影师在讲蓝调前期后期思路的时候,总喜欢在前期的时候把相机色温调的很低,甚至调一调白平衡偏移,产生偏色,说是相...

  • iOS自定义相机

    iOS自定义相机的实现 本文主要介绍iOS系统上的自定义相机的实现,其实并不难主要包含了,拍摄设备,输入端,输出端...

  • IOS 人脸识别微笑眨眼

    iOS-AVFoundation自定义相机详解 需要翻墙 Face Detection in iOS Using ...

  • UE4-后期-WhiteBalance

    什么是WhiteBalance 在数码相机中色温调节被叫做白平衡;通过黄,蓝两色对当前画面进行补色操作来尽可能模拟...

  • 如何用iphone拍摄raw dng格式的照片?

    摄影师和摄影爱好者往往为了拍摄raw dng格式的照片要背上重重的单反相机,或者为了调节焦距,白平衡,ISO,快门...

  • iOS自定义相机/参数调节/视频速率调节/视频合并

    AVFoundation框架 1.AVAsset:用于获取一个多媒体文件的信息,相当于获取一个视频或音频文件,是一...

  • iOS-swfit 利用AVCaptureSession 简单实

    通过AVFoundation库的AVCaptureSession等类写的一个自定义相机 因为iOS10,ios11...

网友评论

      本文标题:关于ios 自定义相机的白平衡调节

      本文链接:https://www.haomeiwen.com/subject/ledegqtx.html