Foveated imaging produces images with varying resolution centered around the fovea. The foveated imaging functionality was implemented with JavaScript, allowing users to upload an image and visualize this effect with the fovea located at their cursor position. A simple way to illustrate this effect real-time is to apply low-pass filters (1) to each pixel on the image, with the filter size dependent on the pixel distance from the fovea. Therefore, pixels farther from the fovea appear blurrier than pixels closer to the fovea. We provide two different blurring methods, discrete and interpolated, with their differences discussed below.
Interpolation
The discrete blurring method calculates the low-pass filter for every pixel based on its distance from the fovea and is recommended for larger images ( \(n_{pixels}>1e^6\) ). The interpolated blurring method smoothes the foveated imaging by interpolating adjacent low-pass filters with different sizes in order to avoid concentric bands of identical resolution.
Summed Area Tables
Iteratively applying low-pass filters to every pixel in an image, potentially performing hundreds of summations to compute the value of each pixel, is computationally demanding. This challenge becomes even greater as the image gets larger, due to the quadratic increase in total pixels. To mitigate this issue, we compute a summed-area table (2) right after loading the image, reducing computation on each pixel to constant time and significantly accelerating the processing time (Figure 3).
Log-Polar Transformation
We computed the log-polar transformation of the input image (3) to illustrate the projection performed in the primary visual cortex. The mapping from Cartesian coordinates to log-polar coordinates is shown in Equation 1 and Figure 4.
$$\rho=\ln{\sqrt{(x-x_c)^2 + (y-y_c)^2}}$$ $$\theta=atan2(y-y_c,x-x_c)$$
References
- Low-pass filters (https://en.wikipedia.org/wiki/Low-pass_filter)
- Summed-area tables (https://en.wikipedia.org/wiki/Summed-area_table)
- Log-polar coordinates (https://en.wikipedia.org/wiki/Log-polar_coordinates)
- Log-polar image https://sthoduka.github.io/imreg_fmt/docs/log-polar-transform/