如何找到图像中区域的平均颜色?

时间:2019-05-25 04:54:40

标签: android opencv

我有Mat个使用circles的{​​{1}}检测到的,我遍历了它们并将它们添加到HoughCircles
现在,我想获取检测到的圆圈的平均颜色,以检查该圆圈是否被标记(例如下图)

enter image description here

List

希望我从这张图片中得到了全部200个圆圈,但是我想检测标记了哪些圆圈(例如,第一行和第二个圆圈都被标记了!)

如何检测标记了哪个圆圈,还知道它是哪一行和哪一列!

有2列,每列有25行,每行有4个圆圈,总共有200个圆圈

1 个答案:

答案 0 :(得分:0)

您想要的是

static Scalar   mean(Mat src) 
          Calculates an average (mean) of array elements.

检测到该圆,绘制一个闭合圆作为遮罩,输入

Mat maskimg=new Mat(); //this image changes for every different circle
Imgproc.circle(maskimg, center, radius, new Scalar(255,255,255), **-1**, 8, 0 );
//draw filled circle on a image
Scalar averagecolor=core.mean(inputimage,masking);
double averageintensity=(averagecolor[0]+averagecolor[1]
+averagecolor[2])/3

if(averageintensity> your preset)
check position to see if answer is correct based on the official answer position

我的Java不好。我没有编译就写了。因此可能存在语法错误,请谨慎使用