OpenCV 计算图像一维直方图

OpenCV直方图计算学习  

环境:Visual studio  2012 +  opencv 2.4.5

统计彩色图像的指定区域的rgb通道的直方图分布



OpenCV 计算图像一维直方图_第1张图片



下面的程序用了inRange函数,生成mask模板将r,g,b值限制在某一个区间内,然后调用calcHist函数


运行结果:

OpenCV 计算图像一维直方图_第2张图片

由于代码段

  
  
  
  
//将数值低于min大于max的像素点排除在统计之外
int r_min = 10 , r_max = 256 ; //红色通道的统计范围
int g_min = 20 , g_max = 256 ; //绿色通道的统计范围
int b_min = 30 , b_max = 256 ; //蓝色通道的统计范围
Mat red_mask , green_mask , blue_mask , mask ;
//调用inRange函数生成掩膜矩阵
inRange ( rgb_planes [ 0 ], r_min , r_max , red_mask );
//cvtColor(red_mask,mask,CV_GRAY2RGB); imshow("red mask",red_mask);waitKey(0);
inRange ( rgb_planes [ 1 ], g_min , g_max , green_mask );
//cvtColor(green_mask,mask,CV_GRAY2RGB); imshow("green mask",green_mask);waitKey(0);
inRange ( rgb_planes [ 2 ], b_min , b_max , blue_mask );
//cvtColor(blue_mask,mask,CV_GRAY2RGB); imshow("blue mask",blue_mask);waitKey(0);
的作用,使得RGB各个通道的直方图起始位置各不相同


你可能感兴趣的:(opencv,RGB,直方图,calcHist)