Random Noise Removal In Images I'm trying to remove random noise from an image. The noise is arbitrarily random so it must not necessarily follow a certain distribution (Not every pixel has the same chance of being affected by noise and not every pixel is affected by the same amount of noise). Such an image might for example look like this example image: 



The usual fast'n'cheap filters (like average etc.) just do not cut it for such images. It's pretty obvious that there's still enough information in the image left for it to be reconstructible but I don't think there's yet a tool available that can actually do that. Any hints on how I could try reconstruction? Tools, algorithms? 

Update 1

The closest I've come so far is this:




It's far from being good but just to show what I mean by removing the noise. 
The resulting image should have more or less uniform areas of about the correct colors. 

An ideal outcome would roughly look like this:



Update 2

Example with little noise



Example with more noise



Update 3

PNG images:




For the lena fans out there:
There are a lot of ways to do image denoising.

I will give several known examples:


Hard/soft thrsholding of the wavelet decomposition: Do a wavelet decomposition of the image and for zero all coefficients less than some minimum value and linear the other values.

Non Local Means: We use the fact that for "natural images" for each patch in the image we can find very similar other patches in the image. So for each pixel we look at the neighborhood around him and we search for other pixels that has the same neighborhood and than we use those patches to calculate the value of the original pixel.using the fact that the patches are very coorelated but the noise isn't.





Block Match 3D: We do the same as before finding similar patches around the image and than we arrange them as a 3D block and apply wavelet thresholding. This is more complicated and you can read about this. A basic scheme for this is:




There a lot more ways and just by googling it you will get a lot of information hope this basic intro will help you enough.