Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
opencv中的颜色平均_C_Opencv - Fatal编程技术网

opencv中的颜色平均

opencv中的颜色平均,c,opencv,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_co

我试图计算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);
结果是:

首先输入图像,然后遮罩,然后输出图像


我做错什么了吗?提前谢谢你的帮助。

我想出来了。我替换了声明
maskData[(p.y)*图像->宽度+p.x]=1
maskData[(p.y)*maskData->step+p.x]=1现在可以正常工作了


谢谢。

如果您想找到平均颜色,如何输出图像???我想用平均颜色替换整个区域。它有什么问题?由掩码表示的区域。对于该区域,我需要计算平均颜色,并将相同的平均颜色分配给该区域中的所有像素。因此输出图像将是一种颜色,对吗?是的,我只关心遮罩区域。图像的其余部分可以从源中复制,也可以只是背景像素(在我的示例中为黑色)。