some times these images present a non-uniform illumination and some pixels noise (e.g. peripheral regions suffer darkening effect). The non-uniformity is due many factors, including the non-uniform reflection and attenuation of illumination light in the different eye layers areas along the various illumination paths>
to solve this problem, it is usually advised to apply an illumination equalization methods to make the whole image more uniform>
Some times these images present a non-uniform illumination and some pixels noise (e.g. peripheral regions suffer darkening effect). The non-uniformity is due many factors (primarily due to an optical aberration called vignetting). Vignetting is the result of an improper focusing of light through an optical system. The result is that the brightness of the image generally decreases radially outward from near the center of the image.
In our case, the imbalance is complicated by the optics of the system used to capture the image. A retinal image is captured by viewing the inner rear surface of the eyeball through the pupil. The lens of the camera works in conjunction with the lens of the eyeball to form the image. Since the position of the eye relative to the camera varies from image to image, the exact properties of the vignetting also vary from image to image.
In order to undo the vignetting, we apply an illumination equalization to the image. Each pixel Ir,c in the image is adjusted as follows:
Ieq(r, c) = I(r, c) + m - A(r, c)
Where m is the desired average intensity (128 in an 8-bit grayscale image) and A(r, c) is the local average intensity. The local average intensity is computed independently for each pixel as the average intensity of the pixels within an NxN window. The window size N is variable, so that averages near the border of the image use the same number of pixels (between 30 and 50 in our experiments) as averages in the center of the image. The local average intensities are also smoothed using the same windowing, to prevent blurring the image features. This process can be implemented using a sliding window algorithm, so that the computations are fast.