2013-03-14 76 views
0

cvHistogram像素的名單上有圖像,並且一個功能填充由像素

int getRegion(int x,int y) 

這給了我到哪個成分的像素屬於一個唯一的標識符。

class Component 
{ 
    int Identifier; 
    CvHistogram* hist; 
} 

我要遍歷整個圖像,並使用我的getRegion()函數的每個像素的值添加到相應的它的直方圖。有沒有人做過這個?重載cvCalcHist()方法是否可行?我不知道從哪裏開始,除非要通過OpenCV源代碼並使用添加的條件複製該方法。

回答

0

也許自己實現這個會更容易?根據您希望如何裝入直方圖,它可能非常簡單。例如 - 如果我採取猜測和假設你getRegion函數返回一個單字節整數(即0和255之間),這將是相當瑣碎生成柱狀圖:

int histArray[256] = { 0 }; 

for (x = 0; x < imageWidth; x++) 
    for (y = 0; y < imageHeight; y++) 
    histArray[getRegion(x,y)]++; 

histArray然後將包含數爲每個值。如果你需要比這更復雜的東西,你應該在你的問題中提供更多的細節。

+0

我已經有一個類結構取決於CvHistogram *,所以我不願意做一個新的數據結構。 – 2013-03-14 13:35:15

+0

嗯,它可以說是不是一個新的數據結構,它只是一個單一的數組。我讀到你的問題的方式看起來像一個簡單的問題,所以你應該給出更多的細節來解釋爲什麼你需要使用'CvHistogram'(你是否使用了任何你不想複製的成員函數?),以及任何其他要求或警告。 – jazzbassrob 2013-03-14 13:38:17