[code]自动白平衡white blance
//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的更多相关文章
- sublime Text Pastry使用
来源: https://github.com/duydao/Text-Pastry/wiki/Examples Using a text list Using the Clipboard Clip ...
- 微软职位内部推荐-Enterprise Architect - BDE - BJ
微软近期Open的职位: Enterprise ArchitectCloud, HTML5, Big Data and Mobile are technology trends driving pro ...
- Java Properties类源码分析
一.Properties类介绍 java.util.Properties继承自java.util.Hashtable,从jdk1.1版本开始,Properties的实现基本上就没有什么大的变动.从ht ...
- 工程优化暨babel升级小记
小记背景 随着业务代码的增多,项目代码的编译时长也在增多,遂针对这个痛点在dev下做些优化 第一部分:优化dev编译时间 这里优化的主要思路是在dev环境下,单独出来一个dll配置文件,将项目中的部分 ...
- SparkSQL执行时参数优化
近期接手了不少大数据表任务调度补数据的工作,补数时发现资源消耗异常的大且运行速度却不怎么给力. 发现根本原因在于sparkSQL配置有诸多问题,解决后总结出来就当抛砖引玉了. 具体现象 内存CPU比例 ...
- Ubuntu环境配置机器安装驱动
ubuntu_environment_config.md thead > tr > th { text-align: left; border-bottom: 1px solid; } t ...
- 【LeetCode】 两数之和 twoSum
两数之和 (简单) 题目描述 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数: 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 例如: 给定 nums = [2,7,11, ...
- 字体jquery ---
You don’t need icons! Here are 100+ unicode symbols that you can use Danny Markov December 3rd, 2014 ...
- 化学元素周期表的英文全称 Periodic Table of the Elements
化学元素周期表的英文全称 Periodic Table of the Elements 缩写 PTE 拉丁文 英文 1 H 氢 Hydrogenium Hydrogen 2 He 氦 Helium ...
随机推荐
- 理解云计算三种服务模式——IaaS、PaaS和SaaS
云计算的服务模式仍在不断进化,但业界普遍接受将云计算按照服务的提供方式划分为三个大类: SaaS(Software as a Service–软件即服务) PaaS(Platform as a Ser ...
- nginx下Thinkphp 隐藏index.php
thinkphp config配置: 'URL_MODEL' => '2', //URL模式 nginx rewrite配置: location / { if (!-e $request_fil ...
- Idea 2018.2.5创建springboot项目依赖包没有的错误
- CSS选择器及优先级
转自CSS优先级的计算公式:http://wyz.67ge.com/css-selector-priority/ 通常我们可以将CSS的优先级由高到低分为六组: 无条件优先的属性只需要在属性后面使用 ...
- Python全栈开发:装饰器实例
#!/usr/bin/env python # -*- coding;utf-8 -*- """ 1.将outer函数放入内存 2.遇见@ + 函数名,则将该函数转换为装 ...
- java系统监控分析Jprofile下载及安装配置【转】
JProfiler是一个全功能的Java剖析工具(profiler),专用於分析J2SE和J2EE应用程式.它把CPU.线程和记忆体的剖析组合在一个强大的应用中.JProfiler可提供许多IDE整合 ...
- MAC地址获取,有线网卡与无线网卡、物理网卡与虚拟网卡的区分
获取当前活跃状态的网卡MAC地址.物理地址 Wmic命令:Win32_NetworkAdapter和Win32_NetworkAdapterConfiguration. 其中cmd命令行执行: 1. ...
- 容斥原理——poj1091
将m质因子分解,然后枚举选取的质因子个数i进行容斥,每种情况进行一次dfs即可 dfs结束标记:当质因子个数达到i时退出递归,同时累加该解对应的方案数 /* 给定n,m 共有n个数的数组a,不超过m ...
- git difff
Generate patch through git diff http://stackoverflow.com/questions/1191282/how-to-see-the-changes-be ...
- 关于SqlServer的内连接,外链接以及left join,right join之间的一些问题与区别。
就我个人理解通俗点来说内连接和外连接区别: 内连接 inner join或者 join (被默认为内连接) : 内连接的原理是:先进行语句判断和运行得出结果,然后在将结果连接起来,一般是横着连接. 外 ...