"Foveated imaging is a digital image processing technique in which the image resolution, or amount of detail, varies across the image according to one or more "fixation points." A fixation point indicates the highest resolution region of the image and corresponds to the center of the eye's retina, the fovea."
I want to use such image to illustrate humans visual acuity, The bellow diagram shows the relative acuity of the left human eye (horizontal section) in degrees from the fovea (Wikipedia) :
Is there a way to create a foveated image in Mathematica using its image processing capabilities ?
Something along the following lines may work for you. The filtering details should be adjusted to your tastes.
WaveletMapIndexed
can give a spatially-varying blur, as shown in the Mathematica documentation (WaveletMapIndexed->Examples->Applications->Image Processing). Here is an implementation of afoveatedBlur
, using a compiled version of theacuity
function from the other answer:where the compiled acuity is
The distance parameter sets the rate of falloff of the acuity. Focusing point
{cx,cy}
, and blind-spot radius are self-explanatory. Here is an example usingManipulate
, looking right at Lena's right eye:See the blind spot?
Following on Sjoerd's answer, you can
Fold[]
a radius-dependent blur as follows.A model for the acuity (very rough model):
The example image:
Some examples: