2011-11-22 77 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之間時會很好地顯示。