将彩色图像分割进BGR三个通道,然后分别显示其直方图,代码如下:
#ifndef ColorHistogramND_h
#define ColorHistogramND_h
#endif /* ColorHistogramND_h */
class ColorHistogramND {
private:
cv::Mat image;
int histSize[1],hisWidth,hisHeight; //直方图的大小及宽度、高度
float range[2]; //值范围
const float *ranges;
cv::Mat channelsBGR[3]; //分离的BGR通道
cv::MatND outputBGR[3]; //输出直方图分量
public:
ColorHistogramND()
{
//准备用于彩色图像的默认参数
histSize[0]=256;
//每个维度256个箱子
hisWidth=500;
hisHeight=500;
range[0]=0.0;//从0开始(含)
range[1]=255.0;//到256(不含)
ranges=&range[0];
}
//导入图片
bool importImage(cv::String path){
image = cv::imread(path);
if (!image.data)
return false