我有一个图像和一个功能
int getRegion(int x,int y)
这为我提供了一个像素所属组件的唯一标识符。
class Component
{
int Identifier;
CvHistogram* hist;
}
我想遍历整个图像并使用我的getRegion()函数将每个像素的值添加到与其对应的直方图中。有没有人这样做过?像这样重载cvCalcHist()方法是否可行?我不确定从哪里开始,除了浏览OpenCV源代码并使用添加的条件复制该方法。
答案 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
将包含每个值的计数。如果你需要比这更复杂的东西,你应该在你的问题中提供一些更详细的信息。