Perhaps converting the image from RGB to HSV can be a good idea.
img = im2double(imread('http://i.stack.imgur.com/D3Zm7.jpg'));
imgHSV = rgb2hsv(img);
Let's display the H
part, which contains only color information:
imshow(imgHSV(:,:,1))
colormap('hsv')
colorbar;
Notice the red portion is distributed at the extremes of the spectrum. Let's try thresholding it using empirical values (by looking at the bar, we can have an first guess of some "good" values):
BW = imgHSV(:,:,1) < 0.05 | imgHSV(:,:,1) > .15;
And display the results:
imshow(BW);
No more shadows! :)