图像处理中,直方图是一个很强有力的工具. 其实直方图就是对颜色像素的统计,将统计值放到相应的bin中. 这里就涉及到bin的概念了,刚开始的时候对这个概念很疑惑.
bin的概念:颜色空间划分的区间即是直方图的bin. 举个例子,灰度图有256个值,如果把每个值划分一个单独的区间,则可以说直方图有256个bin,当然bin越大,颜色区分就越细,但是同时也增加了计算的复杂性.
下面的代码实现了图像RGB三个通道直方图的获取和显示.
#include<opencv2\opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
class HistogramND{
private:
Mat image;//源图像
int hisSize[1],hisWidth,hisHeight;//直方图的大小,宽度和高度
float range[