⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cankaobai tianjia.cpp

📁 face detection of the gussian smooth model ,have the source code
💻 CPP
字号:
#include "stdafx.h"
#include "mydib.h"

const float thresholdco = 0.05; 
//象素个数的临界常数 
const int thresholdnum = 100; 
//灰度级数组 
int histogram[256]; 
for(i =0;i<256;i++) 
  histogram = 0; 
unsigned char RedTemp,GreenTemp,BlueTemp; 

for (j=y1; j<y2; j++) { 
    for (i=x1; i<x2; i++) { 
      index = VL_RGB_PIXEL * (j*width + i); 
     
   //得到rgb值 
    RedTemp=input[index]; 
          GreenTemp=input[index+1]; 
          BlueTemp=input[index+2]; 
   //计算灰度值 
   int gray = (RedTemp * 299 + GreenTemp * 587 + BlueTemp * 114)/1000; 
   histogram[gray]++; 
} 
} 
int calnum =0; 
  int total = x2 * y2; 
  int num; 
  //下面的循环得到满足系数thresholdco的临界灰度级 
  for(i =0;i<256;i++) 
  { 
   if((float)calnum/total < thresholdco) 
   { 
    calnum+= histogram[255-i];//histogram保存的是某一灰度值的像素个数,calnum是边界灰度之上的像素数 
    num = i; 
   } 
   else 
    break; 
  } 
  int averagegray = 0; 
  calnum =0; 
  //得到满足条件的象素总的灰度值 
  for(i = 255;i>=255-num;i--) 
  { 
   averagegray += histogram*i;//总的像素的个数*灰度值 
   calnum += histogram;//总的像素数 
  } 
  averagegray /=calnum; 
  //得到光线补偿的系数 
  float co = 255.0/(float)averagegray; 
  //下面的循环对图象进行光线补偿 
for (j=y1; j<y2; j++) { 
      for (i=x1; i<x2; i++) 
   { 
    //得到数据偏移 
       index = VL_RGB_PIXEL * (j*width + i); 
    //得到分量 
       for(int n=0;n<3;n++) 
    { 
    int nTemp=input[index+n]*co; 
    output[index+n]=(nTemp>255)?255:nTemp; 
     
    } 
       
   } 
  } 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -