2013-02-07 44 views
1

我正在开发用于检测拳击手冲运动的软件。目前,我使用利用inRange函数基于颜色的分割,并设置它来检测蓝色最小值和蓝的最大值。问题在于范围相当广泛,我的摄像机有时会挑选噪音并将不感兴趣的物体分段。通过扫描拳击手套的图像并在进一步处理之前建立精确的蓝色值来改进软件。扫描检测物体颜色在图像

它将使SENS给我说值存储在一个Vector,并呼吁它在INRANGE小说

// My current function which takes the Minimum and Maximum values of Blue Color 
Mat range_out; 
inRange(blur_out, Scalar(100, 100, 100), Scalar(120, 255, 255), range_out); 

,所以我会像载体去这里的某个地方。

enter image description here

  1. 扫描此上述图像计算蓝值
  2. 存储此值在阵列
  3. 召回在INRANGE函数数组

可能有人建议的解决方案这个问题还是直接给我一个信息来源,我可以找到答案?

+0

+1有趣的项目。您可能想要对亮点或反思进行一些操作,以减少确定移动的复杂程度。 –

+0

谢谢......你们我有与亮点/反射/噪音处理多种图像处理功能etc.This打印可控硅任何处理之前采取形式的输入框... eventley了出来把Windows显示轮廓包裹在一个边界框中。看看这里... [链接](http://stackoverflow.com/questions/14733042/opencv-bounding-box)。我相信我可以实现更大的结果,如果我可以事先扫描图像的颜色值,然后在inRange中使用此值。 ooo ye Thx +1 +1 – Tomazi

+0

获取更好的相机? – karlphillip

回答

0

因为你是检测运动的拳击手的手套,从而第一次使用运动到它从场景中的其他元件...使用帧分化或光流至手套分离和其它运动区域从非运动区域分开...现在那些动人的区域尝试一些颜色检测...

0
  1. Separe亮度和cromaticity - 你一定范围内不会在不同的光照条件下很好地工作。你的范围很广,可能是因为你试图在黑暗中同时看到“蓝色”。转换图像到HSV(或La * b *表)并丢弃V(或L),保持H和S(或a *和b *)。

  2. 了解的颜色分布而不是简单的范围 - 采取一些样品并计算H和S(A *或b *)为在手套上像素的2D 颜色直方图。该直方图将成为您的对象颜色分布的模型。然后,使用c2.calcBackProjection来检测场景中感兴趣的像素。

  3. 清洁使用形态学闭动作

重要的结果:在步骤2中,发挥一点与不同的量化值(即,不同数目的二进制位)。

+0

你的回答很有意义,我会给它一个去看看我可以存档。谢谢 – Tomazi