opencv中的颜色平均
我试图计算RGB图像区域的平均颜色。图像的感兴趣区域由遮罩表示。我在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
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代码>现在可以正常工作了
谢谢。如果您想找到平均颜色,如何输出图像???我想用平均颜色替换整个区域。它有什么问题?由掩码表示的区域。对于该区域,我需要计算平均颜色,并将相同的平均颜色分配给该区域中的所有像素。因此输出图像将是一种颜色,对吗?是的,我只关心遮罩区域。图像的其余部分可以从源中复制,也可以只是背景像素(在我的示例中为黑色)。