Hi guys, I am interested to find a way to detect and remove the specularities from a given indoors image. For example give the following image:
you can see that there is the main specular spot in the middle of the image and some minor ones around. I am mostly interested for the main cases but if I could extract the other smaller cases as well that would be perfect.
Searching around the literature I found the following 3 interesting papers: Real-time highlight removal using intensity ratio, Efficient and Robust Specular Highlight Removal and Fast and High Quality Highlight Removal from A Single Image. The first two that they provide the code as well gave not that good results.
you see that it detects the main specular spot but at the same time anything else white-ish is a candidate for detected as specularity as well.
Moreover, I have some special cases:
where it seems to be a specularity but in reality it's an overexposure. Therefore, I would like to hear your ideas regarding how I could optimize the detection. The idea is to create a specular hightlights map and recover afterwards the intensity of pixels, pointed from the map. Thanks.