逐个像素地填充cvHistogram列表

时间:2013-03-14 13:13:53

标签: c++ c opencv image-processing

我有一个图像和一个功能

int getRegion(int x,int y)

这为我提供了一个像素所属组件的唯一标识符。

class Component
{
    int Identifier;
    CvHistogram* hist;
}

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

1 个答案:

答案 0 :(得分: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将包含每个值的计数。如果你需要比这更复杂的东西,你应该在你的问题中提供一些更详细的信息。