照相机中白平衡的算法模拟实现

相机重要技术点为3A算法。

一、 环境vs2010,WCF应用程序,server 2008

而3A算法首要指的是半自动对焦(AF)、自动曝光(AE)及机动白平衡(AWB)。
机动白平衡:依照光源条件调整图片颜色的保真程度。

第一步:WCF项目右键点击项目,选拔生成部署包,如下图:

网上时不时有相近招聘如下的招贤纳士音讯: 

葡京网上娱乐场 1

 ———————————————- ———————————————-

 

Camera/ISP 算法工程师
壁画机3A算法软件工程师 

第二步:WCF项目上右键,拔取:在windows资源管理器中打开文件夹,如下图:

这里随机摘录部分有血有肉要求。

葡京网上娱乐场 2

任职要求:
1、本科以上学历,天文,物理,机电、工业自动化,电子相关专业,大学生学历优先考虑;
2、本科毕业3年以上,研究生毕业1年以上的连锁行业相关工作经历要求;
3、熟知了解C/C++或者FPGA 开发语言,数据结构,MATLAB,信号和连串;
4、领会数字色度学,数字图像处理,数字映像处理的基本知识;
5、熟练摄影机成像原理;
6、精晓3A(AF,AE,AWB)算法之一;
7、对于自动化控制,数字信号采样,滤波,负反馈,PID算法有实际经验;
8、精晓从画面到SENSOR,电机,ISP,编码器,采集,彰显通道一些列变化。

 

任职要求:

其三步:第二步:在您项目所在的文件目录下找到Package文件夹,这就是大家的布局包所在的地方。在这么些package文件夹下边有一个packageTmp。

  1. 精晓camera的3A(AE,AWB,AF)算法原理和计划性思路,
    有3A算法的统筹经验为佳
  2. 装有丰盛ISP(图象处理器) 开发经历,熟识MTK,QUALCOMM,
    OV等便携式终端上应用的ISP开发条件。有上述条件下支付经历为佳。
  3. 领会数字图像处理原理和基础知识。
  4. 熟知C/C++语言,有付出经历为佳
  5. 有手机/便携式相机3A算法实现/应用经验
  6. 了解CMOS sensor的行事规律

葡京网上娱乐场 3

 ———————————————- ———————————————-

葡京网上娱乐场 4

而这类职位一般都是高薪待遇。 

 

下一场问题来了,市面上3A算法相关材料都分外少见,就连相关书籍都很少提及算法细节,而她们大多都会要求通晓3A算法至少之一。

第四步:在IIS上新建虚拟目录,将大体地址指向此文件夹。

而关于白平衡算法,相比较不错的材料是这份:

1、windows server 2008中一直不自带Microsoft .NET Framework
4,由此需要在网上下载,手动安装,安装时右键拔取管理员身份运行。

据悉灰度世界、完美反射、动态阈值等图像自动白平衡算法的规律、实现及效能

下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718

后面反复与博主laviewpbt研讨相关的知识,获益匪浅。

葡京网上娱乐场,2、完成.NET Framework 4后,重启服务器

而据我所知,绝大多数的照相机接纳的底蕴算法便是灰度世界算法,然后在这算法的基础上再改进。

3、在IIS上新建虚拟目录

贴一下《依照灰度世界、完美反射、动态阈值等图像自动白平衡算法的规律、实现及意义》灰度世界法的大约内容。

葡京网上娱乐场 5

 ———————————————- ———————————————-

葡京网上娱乐场 6

灰度世界算法(格雷(Gray) World)

点击确定,完成

  是以灰度世界假诺为底蕴的,该假设认为对于一幅拥有大量情调变化的图像,
R、 G、 B 六个轻重的平均值趋于同一个灰度K。一般有两种艺术来规定该灰度。

4、第四部:部署完毕。可以在浏览器中查阅大家配备的WCF了。

(1)直接给定为固定值, 取其各通道最大值的一半,即取为127或128;

葡京网上娱乐场 7

(2)令 K = (Raver+Gaver+Baver)/3,其中Raver,Gaver,Baver分别代表红、 绿、
蓝多少个通道的平均值。

哈哈,结果。。。。

算法的第二步是分别统计各通道的增益:

葡京网上娱乐场 8

Kr=K/Raver;

这是应为默认的net版本不对,修改章程如下:

Kg=K/Gaver;

葡京网上娱乐场 9

Kb=K/Baver;

修改后,右键浏览,效果如下:

算法第三步为依照Von Kries
对角模型,对于图像中的每个像素R、G、B,总结其结果值:

葡京网上娱乐场 10

Rnew = R * Kr;

上图中的http://localhost/Test.svc?wsdl即为我们要引用的服务地址。

Gnew = G * Kg;

留神:借使在此外机器上引用该机的WCF服务时,需要将localhost替换为该机的ip。

Bnew = B * Kb;

 

对于上式,总括中或者会设有溢出(>255,不会油然则生小于0的)现象,处理格局有两种。

初稿链接:http://blog.csdn.net/jiankunking

a、 直接将像素设置为255,这或者会促成图像全体偏白。

b、
总括有所Rnew、Gnew、Bnew的最大值,然后使用该最大值将将总结后数据再一次线性映射到[0,255]内。实践表明这种艺术将会使图像全体偏暗,指出拔取第一种方案。

 ———————————————- ———————————————-

算法的大致思路就是评估一张图纸RGB多少个通道的中最能发挥该通道富含讯息的值,然后以该值为条件重新调整像素。

这样就会设有评估不够规范的题目,导致各通道像素消息差异过大,形成噪点以及偏色等意况。

因为假诺应用取最大值的方案就会招致在一定情景显而易见不均衡,例如该通道大多数的值落在细微值周围,而却存在一个遥远处的最大值,那么就会导致像素音信差别过大,就很糟糕了。

因此在第两种思路上进展进一步革新比较妥当,因为可用的音信相比较多,不容易出题目。

第两种思路,最简便的另一种立异就是接纳灰度法。

均值法: K = (Raver+Gaver+Baver)/3 

咱俩知道常用的录像采访编码是YUV。

YUV相关见百度百科:YUV

其中的Y为:

Y =0.299*R + 0.587*G+0.114*B

故灰度法相应可对应为:

K=0.299*Raver + 0.587*Gaver+0.114*Baver

通过实测,这样的处理后效果还不易。

贴上比较图:

葡京网上娱乐场 11

原图

葡京网上娱乐场 12

均值法

葡京网上娱乐场 13

灰度法

单从眼睛上去分辨两张图纸,的确很难分出优劣。

不过自己也只是大概点一下这么些思路而已,有所积攒的人,看到这,应该可以散开出更多的想法。

接下去自己要说的是切实相机中的钨丝灯等手动白平衡是何许贯彻的。

粗略的说就是色温调节。

这就是说按照灰度世界这一个白平衡算法可以怎么落实这种调节呢?!

此间贴出简单实现的C代码:

switch (preset)
    {
    case AUTO: 
        Raver = (SumR / numberOfPixels);
        Gaver = (SumG / numberOfPixels);
        Baver = (SumB / numberOfPixels);
        break;
    case CLOUDY: 
        Raver = (SumR *1.953125 / numberOfPixels);
        Gaver = (SumG*1.0390625 / numberOfPixels);
        Baver = (SumB / numberOfPixels);
        break;
    case DAYLIGHT: 
        Raver = (SumR *1.2734375 / numberOfPixels);
        Gaver = (SumG / numberOfPixels);
        Baver = (SumB*1.0625 / numberOfPixels);
        break;
    case INCANDESCENCE: 
        Raver = (SumR *1.2890625 / numberOfPixels);
        Gaver = (SumG / numberOfPixels);
        Baver = (SumB*1.0625 / numberOfPixels);
        break;
    case FLUORESCENT: 
        Raver = (SumR *1.1875 / numberOfPixels);
        Gaver = (SumG / numberOfPixels);
        Baver = (SumB*1.3125 / numberOfPixels);
        break; 
    case TUNGSTEN:
        Raver = (SumR / numberOfPixels);
        Gaver = (SumG*1.0078125 / numberOfPixels);
        Baver = (SumB*1.28125 / numberOfPixels);
        break;
    default:
        break;
    } 

  

enum WB_PRESET{
    //自动白平衡
    AUTO,
    //阴天 7500k
    CLOUDY,
    //日光 6500k 
    DAYLIGHT,
    //白热光 5000k 
    INCANDESCENCE,
    //日光灯 4400k
    FLUORESCENT,
    //钨丝灯 2800k 
    TUNGSTEN,
};

 

葡京网上娱乐场 14

阴天

葡京网上娱乐场 15

日光

葡京网上娱乐场 16

白热光

葡京网上娱乐场 17

日光灯

葡京网上娱乐场 18

钨丝灯

这里只是起到一个演示功效,具体的参数,可按实际上要求酌情进行修改。

本文只是抛砖引玉一下,若有任何连锁问题要么需要也可以邮件联系自己钻探。

 邮箱地址是:

gaozhihan@vip.qq.com