2011-11-22 78 views
0

我想使用opencv创建一个直方图。我有一个模糊操作出来的图像(32位),所以我只知道这些值在[-0.5; 0.5],但我不知道关于起始数据的其他信息。一维直方图opencv与双值

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

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

你看过calcHist的例子吗?此外,camshiftdemo大量使用直方图。

您是否在显示之前用normalize标准化直方图输出(camshiftdemo显示如何操作)? 0附近的值在显示时会显示为黑色,但在标准化为0和255之间时会很好地显示。