MATLAB: How to identify and remove noises from this image

image processing

I should remove noises from the attached image. I applied wiener filter but I'm not able to remove the black stain on the right. Can someone help me to identify and remove it?

Best Answer

The black stain on the right needs fabrication of information to get rid of completely, it looks damaged beyond simple recovery. Someone might disagree and educate me on this as well.
My shadow remover improves the image slightly (still not really well around the black blob), not sure if its towards what you want, but give it a try: http://www.mathworks.com/matlabcentral/fileexchange/50710-intensity-gradient-removal
See:
Versus:
Can also play around with localized fixes like:
Versus: