//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. 杂项-日志:日志(log)

    ylbtech-杂项-日志:日志(log) 1.返回顶部 1. 概述 网络设备.系统及服务程序等,在运作时都会产生一个叫log的事件记录:每一行日志都记载着日期.时间.使用者及动作等相关操作的描述. ...

  2. java模拟页面表单登录

    简单的通过表单的post请求提交到后台 package testpostlogin; import java.io.BufferedReader; import java.io.File; impor ...

  3. <Django>socket简单实现django简化版

    服务端(自己实现django) ''' django简化版:socket服务端 a.收发浏览器信息----wsgiref.py b.根据用户访问的不同路径执行不同函数 c.从html读取出内容,并完成 ...

  4. 牛客网NOIP赛前集训营-普及组(第七场)

    链接:C 来源:牛客网 牛牛的同学给牛牛表演了一个读心术:牛牛先任意选定一个非负整数,然后进行N次操作:每次操作前,假设牛牛当前的数是a,那么这个操作可能是a = a + x, 或者a = a * x ...

  5. 一个WordCount执行过程的实例

  6. postgresql数据库学习-win平台下SQLshell基础操作及语法

    由于在学习https://www.bilibili.com/video/av24590479小马视频时, up主采用的linux虚拟机进行教学, 而本人采用window7进行操作,故在基础操作和语法上 ...

  7. 廖雪峰Java15JDBC编程-3JDBC接口-2JDBC查询

    我们可以使用JDBC查询来执行select语句. 1. Statement try(Connection conn = DriverManager.getConnection(JDBC_URL, JD ...

  8. Spring Cloud Alibaba发布第二个版本,Spring 发来贺电

    还是熟悉的面孔,还是熟悉的味道,不同的是,这次的配方升级了. 今年10月底,Spring Cloud联合创始人Spencer Gibb在Spring官网的博客页面宣布:阿里巴巴开源 Spring Cl ...

  9. 洛谷 2915 [USACO08NOV]奶牛混合起来Mixed Up Cows

    一道水状压,然而不知道是不是太久没做过dp了,我盯着它二十分钟才反应过来.... 还把数组开小了WA了一发QAQ //Twenty #include<algorithm> #include ...

  10. 自己编写jquery插件

    http://blog.csdn.net/chenxi1025/article/details/52222327 https://www.cnblogs.com/ajianbeyourself/p/5 ...