//2013.10.24
//eageldiao
//自动白平衡 CvScalar rgb;
rgb=cvAvg(src); #ifdef COLOR_GW //灰度世界假设(R,= R*K/Ravg ,其中,K=128 or (Ravg+Gavg+Bavg)/3 )
int KK,gw_k;
//KK=rgb.val[0];
//if (rgb.val[1]>KK)KK=rgb.val[1];
//if (rgb.val[2]>KK)KK=rgb.val[2];
//gw_k=KK; //K=max(Ravg+Gavg+Bavg)
//gw_k=(rgb.val[0]+rgb.val[1]+rgb.val[2])/3;//K=mean(Ravg+Gavg+Bavg)
gw_k=; //K=128;
printf( "K=%d;BGR(%f,%f,%f)\n",gw_k,rgb.val[],rgb.val[],rgb.val[]); //显示RGB三通道的均值。 #endif #ifdef COLOR_REMAIN
float gw_k, rgbavg, KK;
//rgbavg=(rgb.val[0]+rgb.val[1]+rgb.val[2])/3;
//KK=rgb.val[0]/rgbavg;
//if(rgb.val[1]/rgbavg>KK)KK=rgb.val[1]/rgbavg;
//if(rgb.val[2]/rgbavg>KK)KK=rgb.val[2]/rgbavg;
//gw_k=KK;
gw_k=1.3;
printf( "K=%f(%f,%f,%f)\n",gw_k,rgb.val[],rgb.val[],rgb.val[]); //显示RGB三通道的均值。 #endif for(y=;y<height;y++)
{
unsigned char *srcrow= (unsignedchar*)(src->imageData+y*src->widthStep);
for (x=;x<width;x++)
{
#ifdef COLOR_GW //使用一般的灰度世界的方法
srcrow[*x]=srcrow[*x]*gw_k/rgb.val[]> ? :srcrow[*x]*gw_k/rgb.val[];
srcrow[*x+]=srcrow[*x+]*gw_k/rgb.val[]> ?: srcrow[*x+]*gw_k/rgb.val[];
srcrow[*x+]=srcrow[*x+]*gw_k/rgb.val[]> ?: srcrow[*x+]*gw_k/rgb.val[];
#endif #ifdef COLOR_REMAIN //使用颜色保持的增强方法,R'/R=G'/G=B'/B=gw_k;
srcrow[*x]=srcrow[*x]*gw_k> ?: srcrow[*x]*gw_k;
srcrow[*x+]=srcrow[*x+]*gw_k> ?: srcrow[*x+]*gw_k;
srcrow[*x+]=srcrow[*x+]*gw_k> ?: srcrow[*x+]*gw_k;
#endif
}
}

[code]自动白平衡white blance的更多相关文章

  1. sublime Text Pastry使用

    来源:   https://github.com/duydao/Text-Pastry/wiki/Examples Using a text list Using the Clipboard Clip ...

  2. 微软职位内部推荐-Enterprise Architect - BDE - BJ

    微软近期Open的职位: Enterprise ArchitectCloud, HTML5, Big Data and Mobile are technology trends driving pro ...

  3. Java Properties类源码分析

    一.Properties类介绍 java.util.Properties继承自java.util.Hashtable,从jdk1.1版本开始,Properties的实现基本上就没有什么大的变动.从ht ...

  4. 工程优化暨babel升级小记

    小记背景 随着业务代码的增多,项目代码的编译时长也在增多,遂针对这个痛点在dev下做些优化 第一部分:优化dev编译时间 这里优化的主要思路是在dev环境下,单独出来一个dll配置文件,将项目中的部分 ...

  5. SparkSQL执行时参数优化

    近期接手了不少大数据表任务调度补数据的工作,补数时发现资源消耗异常的大且运行速度却不怎么给力. 发现根本原因在于sparkSQL配置有诸多问题,解决后总结出来就当抛砖引玉了. 具体现象 内存CPU比例 ...

  6. Ubuntu环境配置机器安装驱动

    ubuntu_environment_config.md thead > tr > th { text-align: left; border-bottom: 1px solid; } t ...

  7. 【LeetCode】 两数之和 twoSum

    两数之和 (简单) 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数: 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 例如: 给定 nums = [2,7,11, ...

  8. 字体jquery ---

    You don’t need icons! Here are 100+ unicode symbols that you can use Danny Markov December 3rd, 2014 ...

  9. 化学元素周期表的英文全称 Periodic Table of the Elements

    化学元素周期表的英文全称 Periodic Table of the Elements   缩写 PTE 拉丁文 英文 1 H 氢 Hydrogenium Hydrogen 2 He 氦 Helium ...

随机推荐

  1. PAT甲级——A1125 Chain the Ropes【25】

    Given some segments of rope, you are supposed to chain them into one rope. Each time you may only fo ...

  2. springboot整合TinyMCE文件上传回显

    今天想尝试TinyMCE富文本,准备着手搭建自己的博客,发现springboot上传文件,如果把文件放在static文件夹不能即时回显,百度了下,说是要刷新文件夹才能解决. 有问题就有解决办法 方法1 ...

  3. Kindle电子书制作

    text.html: <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv=& ...

  4. python基础语法(运算符及优先级)

    python基础语法(运算符及优先级) python语言支持的运算符类型 算数运算符 假设变量a为10,变量b为21 算数符 描述 实例 + 加-两个对象相加 a+b结果31 - 减-得到一个负数或者 ...

  5. 9个永恒的UI设计原则

    很多人都在寻找那些能够帮助他们快速提升设计能力的方法,但你是否想过,自己身上的哪些方面会对你的设计产生影响呢?是使用工具的技巧,对设计的理解和态度,还是你的生活习惯呢?我想说所有这些都是决定你的设计是 ...

  6. 警告(alert 消息对话框) 如果你不点击“确定”,就不能对网页做任何操作,这个小窗口就是使用alert实现的

    警告(alert 消息对话框) 我们在访问网站的时候,有时会突然弹出一个小窗口,上面写着一段提示信息文字.如果你不点击"确定",就不能对网页做任何操作,这个小窗口就是使用alert ...

  7. Luogu P4246 [SHOI2008]堵塞的交通(线段树+模拟)

    P4246 [SHOI2008]堵塞的交通 题意 题目描述 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可以被看成是一个\(2\)行\(C\)列的矩形 ...

  8. ansible 安装及基本使用

    1.yum 安装 yum -y install epel-releaseyum -y install ansible ansible 配置秘钥 ssh-keygen -t rsa #直接回车不用设置密 ...

  9. C++ 类设计核查表

    参考:https://www.jianshu.com/p/01601515ca31 <大规模C++程序设计> 函数接口: 1.运算符或非运算符函数? 2.自由或成员运算符? 3.虚函数或非 ...

  10. 实现Linux下不间断聊天和退出处理

    实现Linux下不间断聊天和退出处理