跟踪OpenCV中的LED变化

时间:2017-09-09 14:47:30

标签: c# opencv colors tracking

在过去的几天里,我一直在努力研究这几个问题,而我还没有找到答案。我正在研究OpenCV(实际上是EmguCV,因为我正在使用C#)视频处理应用程序,我需要跟踪视频上的LED灯位置。

到目前为止,一切似乎都很正常。我可以将图像转换为HSV颜色范围并检测任何颜色。关键在于,只有一个LED灯,它在RGB基础上不断变化,所以在视频中有几帧的红灯,然后它变成蓝色,然后再变为绿色并再次变回红色。

我已经编写了一些代码,我可以跟踪每个帧的红色,蓝色和绿色,然后应用高斯滤镜并添加三个图像,以便在我的图像中有一个恒定点,即LED灯。

但是我想知道,如果可能的话,我是否可以一直跟踪颜色在此基础上变化的区域,因为通过执行此操作,我还可以获得恒定的蓝色,红色和绿色添加。最终形象。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

仅作记录,我实际上设法解决了该问题。由于HSV颜色空间是圆形的(色相0为红色,色相179为色),因此我定义了从红色到绿色的色相增量为60,从绿色到蓝色的色相增量为60的增量,以及一个变化从蓝色到红色为60另一增量(当然,不完全是60永远,但你可以得到一个想法)。

通过这种方式,如果您选择H通道并将其与HV通道进行比较,则可以在HSV颜色空间中观察到LED彩色闪烁的模式,其中您的光从红色变为绿色,从绿色变为蓝色,并且从蓝色变为红色。前一帧的H通道,然后寻找大约60的增量。

我不能代码后,由于我工作的项目的性质,但它确实工作得很好。我知道可能已经晚了,但我想总比没有好。