2012-10-10 46 views
5

我在OpenCV2.3.1和Visual C++中有一个汽车检测项目。我们如何消除照明噪音?

在前景分割中,存在由于照明引起的反射。 这个(反射)在背景 已被删除后成为前景的一部分。 enter image description here

我需要关于如何消除噪音的建议或想法。因为它会导致一些前景对象被连接为一个对象,如使用 findContours和drawContours函数时所看到的。请参阅附件图像上以红色 突出显示的图像部分。我认为这将简化斑点检测阶段。

*注 - 根据需要,我不能使用内置cvBlobLib OpenCV中

回答

2

也许尝试将图像转换为HSV然后过滤高得五世达

IplImage imgHSV = cvCreateImage(cvGetSize(imgInput), 8, 3); 
IplImage imgThreshold = cvCreateImage(cvGetSize(imgHSV), 8, 1); 
cvInRangeS(imgHSV, cvScalar(0, 0, 90, 0), cvScalar(0, 0, 100, 0), imgThreshold); 

..adjust标量去除眩光

+2

识别眩光并不是什么大不了的事情,但如何填补这一部分是一个很好的问题。 –

4

问题在这里是一部分的眩光可以是背景或相应的车。

这是我会做的。

,我相信你不会有identifying glare parts by binarizing and thresholding or in a similar way.

一旦确定刺眼的所有像素的一个大问题,我会与同一行的形象在最近的无眩光像素替换每个眩光像素。这样,眩光将充满汽车和背景。用这种方法,那么你将能够检测到没有太多问题的汽车。

+2

我想你描述的是一个Inpaiting算法的应用。我认为Inpaiting算法仍然不适用于已发布版本的OpenCV,但我知道他们正在研究它。 –

+0

我认为算法虽然不难实现。 –