具有双值的1D直方图opencv

时间:2011-11-22 11:10:27

标签: opencv histogram

我正在尝试使用opencv创建直方图。我有一个从模糊操作中出来的图像(32位),所以我只知道值在[-0.5; 0.5]但我对起始数据一无所知。

问题是我不明白如何设置参数来计算这样的直方图。 我写的代码是:

int numbins=1000;
float range[]={-0.5, 0.5};
float *ranges[]={range};
CvHistogram *hist=cvCreateHist(1, &numbins, CV_HIST_ARRAY, ranges, 1);
cvCalcHist(&img, hist);

是img是我想要获得直方图的图像。如果我尝试打印直方图,我只会得到一张黑色图片,而使用相同的功能,如果使用灰度8位图像,我会得到一个正确的直方图。

1 个答案:

答案 0 :(得分:1)

您是否看过calcHist示例?此外,camshiftdemo大量使用直方图。

您是否在显示之前使用normalize对直方图输出进行规范化(camshiftdemo显示了如何执行此操作)?显示时,接近0的值将显示为黑色,但是在0到255之间进行标准化时,将很好地显示。