Question: [![Clear stone with little degradation](https://i.stack.imgur.com/8GnOnm.jpg)](https://i.stack.imgur.com/8GnOn.jpg)

(Click on image to enlarge)

[![Headstone with limited degradation](https://i.stack.imgur.com/XCqFzm.jpg)](https://i.stack.imgur.com/XCqFz.jpg)

(Click on image to enlarge)

Is there an image processing technique that would aid in reading the letters and numbers on a grave headstone? Most stones are etched into a relatively soft stone. Over time the surface of the stone is eroded away leaving very shallow and indistinct writing. This makes standard edge detection of little value. 

Further, many stones have living flora such as lichen growing on and in the letters. This tends to make the depression in the stone undetectable. Most graveyard custodians prohibit brushing or cleansing the stone for fear of further damage.

Such flora is often multicolored making it hard to remove with RGB filtering. Ideas would be greatly appreciated.
Attached is a relatively 'clean' example of a headstone.

Answer: 
This provides reasonable legibility by "amplifying" a slight differential pigmentation towards a blueish tonality in the carved areas:

```
i = Import["http://i.stack.imgur.com/8GnOn.jpg"];
tt = Last@# - Mean@Most@# &[ImageData /@ ColorSeparate[i]];
Image@tt // ImageAdjust

```

![Mathematica graphics](https://i.stack.imgur.com/28uNv.png)

You can read quite clearly:

> 
> Elizabeth P.
> 
> 
> Wife of
> 
> 
> W.H. Gray
> 
> 
> Died
> 
> 
> Jan 21, 1889
> 
> 
> Aged
> 
> 
> 36 Y'rs. 11 Mo.
> 
> 
> & 21 D's.
> 
> 
>
[`EntropyFilter`](http://reference.wolfram.com/language/ref/EntropyFilter.html) seems useful on the first image.

```
img = Import["http://i.stack.imgur.com/8GnOn.jpg"];

EntropyFilter[img, 11] // ImageAdjust

```

[![enter image description here](https://i.stack.imgur.com/wZ0V8.jpg)](https://i.stack.imgur.com/wZ0V8.jpg)