Ask Your Question
4

Hotspots in an image

asked 2013-02-11 03:47:16 -0600

UserOpenCV gravatar image

updated 2013-02-11 10:11:06 -0600

How to detect a hotspot in an image using opencv? I have tried googling but couldnt get a clue of it.

Hotspot definition : Hot spots are shiny areas on a subject’s face which are caused by a flash reflecting off a shiny surface or by uneven lighting. It tends to make the subject look as if they are sweating, which is not a good look.

Image Sample With HotSpot:

image description

Image Sample Without HotSpot:

image description

edit retag flag offensive close merge delete

Comments

What's a hostspot?

sammy gravatar imagesammy ( 2013-02-11 04:34:53 -0600 )edit

@sammy Hot spots are shiny areas on a subject’s face which are caused by a flash reflecting off a shiny surface or by uneven lighting. It tends to make the subject look as if they are sweating, which is not a good look.

UserOpenCV gravatar imageUserOpenCV ( 2013-02-11 05:52:27 -0600 )edit

Do you have an image sample? It's only a white region or more complex?

Mathieu Barnachon gravatar imageMathieu Barnachon ( 2013-02-11 07:45:48 -0600 )edit

@Mathieu Barnachon Thanks for the reply. I have updated my post with sample image. I need to detect this hotspot in live video stream.

UserOpenCV gravatar imageUserOpenCV ( 2013-02-11 10:12:51 -0600 )edit

2 answers

Sort by » oldest newest most voted
4

answered 2013-02-12 05:29:46 -0600

Guanta gravatar image

What you call 'hotspots' are better known as 'specular highlights' or 'specularities'. There exist plenty algorithms to remove these. Publicly available code is provided for example by R,Tan et al http://www.staff.science.uu.nl/~tan00109/textureSeparation/results.html . A fast specularity removal method was presented by Yang et. al http://www.cs.cityu.edu.hk/~qiyang/ who also provides code. However note that depending on your application the usage of the both methods may not work on your facial images since faces are highly textured. Imho the most promising method was proposed by Mallick et al http://nguyendangbinh.org/Proceedings/ECCV/2006/CD1/papers/3951/39510550.pdf , unfortunately it is not that easy to implement and they also have a patent on their method.

edit flag offensive delete link more
0

answered 2013-02-11 10:34:13 -0600

I'm not aware of classical solution, but have you try Gaussian filter and compute the difference? Hotspots should lied on high differences?

I see on pictures than not only hotspots are remove, the whole skin is kind of ``photoshoped''. Maybe a good solution will be to convert your image in HSV and filter on luminance channel. Use a segmentation of that color (the whole color, to have the skin for example) and applied the processing on the whole component. Segmentation that used seed would be a good starting point, you pick seed in each high luminance part. Moreover, if your are only finding hotspots on skin, try a skin detector in a first step.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2013-02-11 03:47:16 -0600

Seen: 9,296 times

Last updated: Feb 12 '13