I am trying to isolate each of the blue painted fingernails in the image. However, I am not sure what approach should be considered due to the white design on each nail interrupting the otherwise uniform nail color. This of course, makes EdgeDetect a lot harder to apply. Any suggestion would be appreciated.

Thanks to both Belisarius and Vitaliy Kaurov for your in depth responses. I am trying to consider a more general case such as the following image. I would like to use an edge detection approach to find the area of the nails. using a MedianFilter does help a lot and isolates the nail areas. However, what would be the next step in using the result to detect the nail areas? I am guessing that I would need to 'complete' the circles of these lines first. Is there a better approach? Perhaps measuring the density of the lines would be the best...

Your "update" seems to include a whole different world of problems. I suggest posting it in another question and also post there enough samples of nails so you don't have to "upgrade" again
–
belisariusJul 28 '12 at 16:21

4

Both belisarius and Vitaliy have answered your original question; if you feel they haven't, please try to clarify why. Your update is a different question (and probably way too general; is the white balance going to be correct? the colour of the nails always the same? their size always constant?). it's underspecified
–
aclJul 28 '12 at 17:06

(*Colorize and count the fingers: 5. Another boring human being*)
(*I bet her hair is green and she has a snake tatooed down there*)
Colorize[MorphologicalComponents[c], ColorFunction -> "BrightBands"]

It all depends on what you mean by "isolate". Here is a start. I will use function called ClusteringComponents which finds clusters of pixels with similar values in image. We have quite a few different type of elements: skin, nails, zigzag line, a few background elements. Some have a bit close nature - like whitish-yellowish color of zigzags and the skin. So you have to specify large enough number of clusters to pick all those up, but not too big to make later search through them cumbersome. "Make everything as simple as possible, but not simpler." ~ Albert Einstein - a typical optimization statement ;-) For example, choosing number of clusters to be 8 will not be able to distinguish between zigzags and part of the skin:

From this image we see that in the array (matrix) x produced by ClusteringComponents nails and zigzags are the darkest, so they got the highest index values. Because we had 9 clusters, this line is obvious:

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.