zoukankan      html  css  js  c++  java
  • [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=120;                       //K=128;    
    printf( "K=%d;BGR(%f,%f,%f)
    ",gw_k,rgb.val[0],rgb.val[1],rgb.val[2]);      //显示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)
    ",gw_k,rgb.val[0],rgb.val[1],rgb.val[2]);      //显示RGB三通道的均值。
    
    #endif
    
    for(y=0;y<height;y++)
    {
    unsigned char *srcrow= (unsignedchar*)(src->imageData+y*src->widthStep);
    for (x=0;x<width;x++)
    {  
    #ifdef COLOR_GW                            //使用一般的灰度世界的方法
    srcrow[3*x]=srcrow[3*x]*gw_k/rgb.val[0]>255 ? 255:srcrow[3*x]*gw_k/rgb.val[0];
    srcrow[3*x+1]=srcrow[3*x+1]*gw_k/rgb.val[1]>255 ?255: srcrow[3*x+1]*gw_k/rgb.val[1];
    srcrow[3*x+2]=srcrow[3*x+2]*gw_k/rgb.val[2]>255 ?255: srcrow[3*x+2]*gw_k/rgb.val[2];
    #endif
    
    #ifdef COLOR_REMAIN                         //使用颜色保持的增强方法,R'/R=G'/G=B'/B=gw_k;
    srcrow[3*x]=srcrow[3*x]*gw_k>255 ?255: srcrow[3*x]*gw_k;
    srcrow[3*x+1]=srcrow[3*x+1]*gw_k>255 ?255: srcrow[3*x+1]*gw_k;
    srcrow[3*x+2]=srcrow[3*x+2]*gw_k>255 ?255: srcrow[3*x+2]*gw_k;
    #endif
    }
    }
    
  • 相关阅读:
    Java学习10——package和import
    第一次作业_031502532_吴智慧
    Java学习9——面向对象
    Java学习8——类(对象)之间的关系
    Java学习7——一些注意的地方
    Java学习5——标识符和关键字
    Zookeeper集群和HBase集群
    Zookeeper、HBase的伪分布
    hive学习笔记——表的基本的操作
    hive 学习笔记——表的入门操作和命令
  • 原文地址:https://www.cnblogs.com/eaglediao/p/7136508.html
Copyright © 2011-2022 走看看