0

我有一个图像和一个功能

int getRegion(int x,int y)

这给了我一个像素属于哪个组件的唯一标识符。

class Component
{
    int Identifier;
    CvHistogram* hist;
}

我想遍历整个图像并使用我的 getRegion() 函数将每个像素的值添加到与其对应的直方图中。有人做过吗?像这样重载 cvCalcHist() 方法是否可行?除了浏览 OpenCV 源代码并复制带有附加条件的方法外,我不确定从哪里开始。

4

1 回答 1

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然后将包含每个值的计数。如果您需要比这更复杂的东西,您可能应该在问题中提供更多细节。

于 2013-03-14T13:32:36.187 回答