Image Processing Challenge: What does the world look like through my eyes?

July 30th, 2013 | Categories: just for fun, Science | Tags:

I am extremely short sighted and have a contact lens prescription of the order of -10 dioptres or so.  Recently, I was trying to explain to my wife exactly how I see the world when I am not wearing my contact lenses or glasses and the best I could do was ‘VERY blurry!’

This got me thinking.  Would it be possible to code something up that took an input picture and a distance from my eyes and return an image that would show how it looks to my unaided eyes?

Would anyone like to give this a go?  How hard could it be?

  1. July 30th, 2013 at 16:57
    Reply | Quote | #1

    The most difficult problem I see is that with myopia, objects get more blurry as they are farther from you. So if the target is not an image of coplanar objects but of a random scene, the algorith should first decompose the scene into several planes of coplanar objects at different distances from the observer and then defocus them accordingly. Good luck to those with free time! :)

  2. Mike Croucher
    July 30th, 2013 at 17:14
    Reply | Quote | #2

    Good point. So, simplifying assumption is ‘The target is an image of coplanar objects’ :)

  3. July 30th, 2013 at 17:31
    Reply | Quote | #3

    It is not that easy, because it depends on the size of your iris. So if it is dark or not will change your appearance too! (remember that you squint your eyes to see things sharper; squinting is nothing more than making the entree of light smaller).

    The size of your iris compared to the size of your eye-ball is the key factor here (and your dioptre).

  4. Alex
    July 30th, 2013 at 18:39
    Reply | Quote | #4

    How about approaching it from a different angle:
    Take an image and add a fog effect or smth like this in a photoshop or similar until the image on the screen reminds you of what you see without lens?

  5. Craig
    July 30th, 2013 at 18:49
    Reply | Quote | #5

    What my optometrist has done is grab a lens of about +8 diopters (I’m about -8) and had my wife look through that.

  6. William
    July 30th, 2013 at 21:21
    Reply | Quote | #6

    -10D is a serious amount of myopia! Not unknown, but pretty rare. Your best bet is to find a +10D magnifier (NOT 10x but 10D) and just tell your wife to hold it in front of her eye. That’s way better than trying some image processing, as it uses real physics (rather than computer physics) to do the simulation.

    Mail me your address and I’ll see if I have a spare +10D lens hanging around at work (I work in an optometry department in the UK, so I probably do) and I’ll mail it to you. If you give me your exact prescription, I might find something even closer, even though it probably won’t make that much difference in impressing your wife.

  7. Mike Croucher
    July 30th, 2013 at 21:34
    Reply | Quote | #7

    A friend of mine at Wolfram Reesearch is on vacation but suggested that I do a couple of wolfram alpha searches. These show what a Snelling chart looks like for various levels of vision. 5/20 vision corresponds to -1.5 diopters

    1/20 vision is -3.5 diopters and the chart looks very blurry.

    My vision is MUCH worse than this.

    Another fun search is ‘dog vision picture of lee van Cleef’

  8. Tanya Morton
    July 30th, 2013 at 22:15
    Reply | Quote | #8

    Looks like this website is aiming to solve this very challenge:
    The algorithm used is not is clear.

  9. matt C
    September 5th, 2013 at 00:21
    Reply | Quote | #9

    How about just having your better half drink say 10 beers…

    That should enable her to see through your eyes.

  10. Szabolcs
    September 10th, 2013 at 22:08

    I played with something similar for a while once. As Jorge said, the biggest difficulty is that the amount of blur depends on the distance from the object.

    After trying to do it in Mathematica based on an input image and a distance map, I realised that it’s already implemented in later versions of Photoshop, and it’s called “lens blur”.

    The basic idea is to create a convolution of the image with the image of the lens aperture (eye pupil) at a certain size. (This is just an approximation, but still much much better than a naive Gaussian blur.) The size depends on the distance of the object represented by the pixel being processed. You can use a thin lens approximation to figure out the size that should be used.

    For the eye the calculations will take a bit more work because the media on the two sides of the lens have different indices of refraction.

    The problem will be more interesting if you need cylindrical lenses.