5

我在 OpenCV2.3.1 和 Visual C++ 中有一个汽车检测项目。

在前景分割中,由于照明存在反射。在背景被移除后,这(反射)成为前景的一部分。在此处输入图像描述

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

*注意 - 我不允许在 OpenCV 中使用内置的 cvBlobLib

4

2 回答 2

4

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

这就是我要做的。

我相信通过二值化和阈值​​化或类似方式识别眩光部分不会有大问题。

一旦识别出所有眩光像素,我将用图像同一行中最近的非眩光像素替换每个眩光像素。这样,汽车和背景就会充满眩光。使用这种方法,您将能够毫无问题地检测汽车。

于 2012-10-11T00:39:35.890 回答
3

也许尝试将图像转换为 HSV 然后过滤高 V 量

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);

..根据需要调整标量以消除眩光

于 2012-10-11T00:05:13.857 回答