我正在尝试使用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位图像,我会得到一个正确的直方图。
答案 0 :(得分:1)
您是否看过calcHist示例?此外,camshiftdemo大量使用直方图。
您是否在显示之前使用normalize对直方图输出进行规范化(camshiftdemo显示了如何执行此操作)?显示时,接近0的值将显示为黑色,但是在0到255之间进行标准化时,将很好地显示。