opencv中的颜色平均值

时间:2013-01-29 17:23:48

标签: c opencv

我正在尝试计算RGB图像区域的平均颜色。感兴趣的图像区域由掩模表示。我在opencv中使用了cvAvg函数,但不知怎的,我无法正确执行。 我使用了以下代码:

//Prepare the mask
CvMat*regionMask = cvCreateMat(inImage->height, inImage->width, CV_8UC1);
cvZero(regionMask);
uchar* maskData = regionMask->data.ptr;
if(some_cond)
   maskData[(p.y)*inImage->width + p.x] = 1;

//Compute average and set the output region
cvSet(outImage, cvAvg(inImage, regionMask), regionMask);

结果如下:

输入第一张图像,然后输入掩码,然后输出输出图像。

Input Image Mask Output

我在这里做错了吗?感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我明白了。我取代了声明 maskData[(p.y)*inImage->width + p.x] = 1; maskData[(p.y)*maskData->step + p.x] = 1; {{1}},现在工作正常。

感谢。