我们如何去除光照噪声?

6
我在OpenCV2.3.1和Visual C ++中有一个汽车检测项目。
在前景分割中,由于照明而产生反射。这些反射在背景被移除后成为前景的一部分。
我需要关于如何消除此噪声的建议或想法。因为它会导致某些前景对象连接成一个对象,就像使用findContours和drawContours函数时看到的那样。请参见附图中突出显示为红色的图像部分。我认为这将简化斑点检测阶段。
*注意-我不允许在OpenCV中使用内置的cvBlobLib。
2个回答

4

问题在于闪光的一部分可能是背景或对应的汽车。

以下是我的建议。

我认为您可以通过将图像二值化和阈值化或类似的方法来轻松地识别出闪光部分。

一旦确定了所有闪光像素,就可以用同一行中最近的非闪光像素替换每个闪光像素。这样,闪光就会被填充为汽车和背景。使用此方法,您将能够轻松地检测到汽车。


3
我猜你所描述的是一种修复算法的应用。我认为OpenCV目前发布的版本中还没有可用的修复算法,但我知道他们正在开发中。 - Rui Marques
1
我认为这个算法并不难实现。 - Tae-Sung Shin

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

根据需要调整标量以消除反光。


2
识别眩光并不是什么大问题,但如何填补那部分才是一个真正的好问题。 - Tae-Sung Shin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接