RGB图像区域直方图统计方法

来源:互联网 发布:方舟生存进化优化太差 编辑:程序博客网 时间:2024/06/05 01:47

# define R_BIN      8 
# define G_BIN      8 
# define B_BIN      8 

# define R_SHIFT    5 
# define G_SHIFT    5 
# define B_SHIFT    5 

彩色图像直方图统计:彩色图像一般由RGB三个通道构成,每一个通道由8位构成,最大为255,如果直接根据三个通道每一个不同的值构造直方图很先得很庞大,为256*256*256=256三次方个bins,为简单起见,每一个通道设置8个bins,这样一来,每一个通道最大值256/8=32,即每一个通道划分8bins,每一个bins里面可以存放32个数,0-31,32-63,64-127,.....。224-255等。彩色RGB转化为一维总共8*8*8=512个bins,

   r = image[(y*W+x)*3] >> R_SHIFT;  
   g = image[(y*W+x)*3+1] >> G_SHIFT;
   b = image[(y*W+x)*3+2] >> B_SHIFT;

这里R_SHIFT, G_SHIFT,B_SHIFT宏定义5,右移5位,每一个R,G,B值除以32映射到相对应的8个bins中。0-31映射到bins1,32-63映射到bins2中......224-255映射到bins8中.

 总结:对于每一个RGB像素值,通过计算都可以映射到唯一的index,根据index累加,将相应的核密度权值累加,统计出直方图。


阅读全文
0 0