https://www.cnblogs.com/haar/articles/1392227.html

一种效果很好的自动白平衡技术(WhiteBalance)

白平衡是图像处理的一个极重要概念。所谓白平衡(英文名称为White Balance),就是对白色物体的还原。当我们用肉眼观看这大千世界时,在不同的光线下,对相同的颜色的感觉基本是相同的,比如在早晨旭日初升时,我们看一个白色的物体,感到它是白的;而我们在夜晚昏暗的灯光下,看到的白色物体,感到它仍然是白的。这是由于人类从出生以后的成长过程中,人的大脑已经对不同光线下的物体的彩色还原有了适应性。但是,作为拍摄设备,如数码相机,可没有人眼的适应性,在不同的光线下,由于CCD输出的不平衡性,造成数码相机彩色还原失真。一般情况下,我们习惯性地认为太阳光是白色的,已知直射日光的色温是5200K左右,白炽灯的色温是3000K左右。用传统相机的日光片拍摄时,白炽灯光由于色温太低,所以偏黄偏红。所以通常现场光线的色温低于相机设定的色温时,往往偏黄偏红,现场光线的色温高于相机设定时,就会偏蓝。

为了解决不同色温下,引起的白色漂移现象。由于白色对色温变化的响应最大,通常用白色来作为调整的基色。通常的白平衡技术有:自动白平衡、钨光白平衡、荧光白平衡、室内白平衡、手动调节。本文仅介绍其中的一种自动白平衡。

白平衡算法通常分为两步:白色点的检测,白色点的调整。本方法采用一个动态的阀值来检测白色点。详细算法过程为:

1.  把图像w*h从RGB空间转换到YCrCb空间。

2.  选择参考白色点:

a. 把图像分成3*4个块(块数可选)。

b. 对每个块,分别计算Cr,Cb的平均值Mr,Mb。

c. 对每个块,根据Mr,Mb,分别计算Cr,Cb的方差Dr,Db。

d. 判定每个块的近白区域(near-white region)。

判别表达式为:Cb(i, j) − (Mb + Db × sign(Mb )) < 1.5× Db && Cr(i, j) − (1.5×Mr + Dr × sign(Mr )) < 1.5× Dr

设一个“参考白色点”的亮度矩阵RL,大小为w*h。

若符合判别式,则作为“参考白色点”,并把该点(i,j)的亮度(Y分量)值赋给RL(i,j);

若不符合,则该点的RL(i,j)值为0。

3.  选取参考“参考白色点”中最大的10%的亮度(Y分量)值,并选取其中的最小值Lu_min.

4.  调整RL,若RL(i,j)<Lu_min,  RL(i,j)=0; 否则,RL(i,j)=1;

5.  分别把R,G,B与RL相乘,得到R2,G2,B2。  分别计算R2,G2,B2的平均值,Rav,Gav,Bav;

6.  得到调整增益:  Ymax=double(max(max(Y)))/15;
                                    Rgain=Ymax/Rav;
                                    Ggain=Ymax/Gav;
                                    Bgain=Ymax/Bav;

7.  调整原图像:Ro= R*Rgain; Go= G*Ggain; Bo= B*Bgain;

android硬解码相关推荐

  1. android jni 硬解码,Android 硬解码 MediaCodec 遇到的(部分手机绿屏)API21

    MediaCodec 是android用来做音视频编解码 下面是遇到其它的问题(解码几分钟后一直dequeueInputBuffer-1) http://blog.csdn.net/qq3773663 ...

  2. 全志 android 硬解码,Adroid新增硬件编解码

    背景 瑞芯微和全志的平台 硬解的视频codec为H264 修改方法 1. 硬件编码 修改文件MediaCodecVideoEncoder.java (1)文件新增全志和瑞芯微的硬件编解码 //全志 p ...

  3. android硬解码x265,Android 设置硬解码 h265 失败

    在demo中开启硬件解码,同时设置h265开关 ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacode ...

  4. android 硬解码 绿屏,iOS硬解播放,一半绿屏

    @stevechyuan background knowledge: 一个mp4 file生成,是在enc 吐出bitstream之后.然后a/v interleave mux到mp4 file. h ...

  5. MediaCodec在Android视频硬解码组件的应用

    https://yq.aliyun.com/articles/632892 云栖社区> 博客列表> 正文 MediaCodec在Android视频硬解码组件的应用 cheenc 2018- ...

  6. 【AVD】FFmpeg + MediaCodec 实现 Android 硬件解码,中间有个大坑

    最近在做移动端音视频编解码,首先要实现的是移动端视频的解码功能.纯的 FFmpeg 方法在移动端也能实现,但是效率上的确要慢一些,1080p 的视频还好,但是上到 2k.4k,那个解码速度(以肉眼可见 ...

  7. android硬编码封装mp4,【Android 音视频开发打怪升级:音视频硬解码篇】四、音视频解封和封装:生成一个MP4...

    [声 明] 首先,这一系列文章均基于自己的理解和实践,可能有不对的地方,欢迎大家指正. 其次,这是一个入门系列,涉及的知识也仅限于够用,深入的知识网上也有许许多多的博文供大家学习了. 最后,写文章过程 ...

  8. android udp rtp播放器,IjkPlayer For Android(3)-RTP直播硬解码支持

    IjkPlayer播放器其实是支持RTP直播的,但是只能用ffmpeg软解码不能使用硬解码. 这里将会从以下几个方面配置使用 1.UDP RTP/RTMP区别 2.FFMpeg推流 3.IjkPlay ...

  9. android aac硬解码,android AAC的音频硬解码

    android AAC的音频硬解码 上一篇写了AAC音频的硬编码,今天补充硬解码,其实就是硬编码反过来,非常简单 初始化AAC硬解码资源: public int Start() { int iRet ...

最新文章

  1. 网关限流了,躲在后面的服务就能高枕无忧啦?
  2. 腾讯员工上半年人均月薪 7.8 万,网友:别人拿月薪我拿年薪。。。
  3. Lesson 6.1 身份证识别: 提取字段
  4. 转载 一个渣硕iOS春招总结 | 掘金技术征文
  5. AAAI 2019 滴滴被收录论文全解读
  6. 一个一直没想通的问题:为什么印度的软件外包能比中国强那么多?这应该是中国人的强项啊...
  7. 计算机应用领域变化,计算机应用领域与发展阶段.ppt
  8. 仅展示近三天的动态设置_抱歉,朋友仅展示最近三天的朋友圈
  9. sleep与wait的区别? 以及wait(long timeout)中timeout的含义
  10. maven-dependency-plugin插件的使用
  11. Geodetector软件下载、地理探测器的应用实践与结果解读
  12. 利用梦网云通讯实现 短信 验证码 发送 附带教程~~~
  13. python学习方法总结(内附python全套学习资料)
  14. C语言系列(5) --- C语言文件的操作
  15. 手撸JDK之ReentrantLock锁那点事
  16. 哇塞!集齐7张卡片,真的可以召唤神龙耶!
  17. 教孩子学编程python豆瓣_教孩子学编程 Python
  18. AtCoder Beginner Contest 190 E.Magical Ornament
  19. bt5使用教程----渗透方面
  20. COMP 3023代写、代写COMP 3023、代做 C++ - Assignment、 代编码C++ - Assignment

热门文章

  1. 斑马zpl指令二维码换行
  2. 【教程】微信公众号如何添加文档附件,如word、excel、pdf等?
  3. diy 单片机 自动浇花_单片机自动浇花系统(附原理图、仿真文件、源程序)
  4. Windows DNS服务器的子网掩码排序
  5. 饥荒联机版服务器搭建教程-WeGame
  6. iOS App 名字国际化的办法
  7. 【运筹学】线性规划 图解法 ( 唯一最优解 | 无穷最优解 | 无界解 | 无可行解 )
  8. 基于非线性参数的海洋捕食者算法
  9. Java核心技术:集合——映射
  10. 计算机视觉入门(一)