Wavefront optics toolbox: Difference between revisions

From Psych 221 Image Systems Engineering
Jump to navigation Jump to search
imported>Psych2012
imported>Psych2012
Line 51: Line 51:


text text text
text text text
[[Image:exampleEmbedImg.jpg |thumb|700px|center|Example embedded image]]


== Subheading ==  
== Subheading ==  
Line 59: Line 57:
=== Subsubheading ===  
=== Subsubheading ===  
text text text
text text text
:<math>OIF_k = \frac{\sum_{n=1}^{3} \left\|\mathbf{x}_n-\bar{\mathbf{x}}_n)\right\|}{|\mathbf{x}_1^T\mathbf{x}_2|+|\mathbf{x}_1^T\mathbf{x}_3|+|\mathbf{x}_2^T\mathbf{x}_3|}</math>


<br>
<br>

Revision as of 06:11, 19 March 2012

Back to Psych221-Projects-2012

We worked with the WavefrontOpticsToolbox, located in a SVN repository at https://platypus.psych.upenn.edu/repos/toolboxes/WavefrontOpticsToolbox/trunk. This toolbox models the optics of the human eye using scalar diffraction theory from Fourier optics. In particular, the aberrations of the human cornea, pupil, and lens, as well as the Stiles-Crawford effect from retinal cone cells, are modeled by the amplitude and phase of the eye's pupil function. This pupil function is then Fourier transformed to compute the eye's point spread function (PSF).

The project is split into two sections: 1) code clean-up and commenting and 2) the creation of a MATLAB tutorial to demonstrate some of the features of the toolbox.


Background

Ray optics, or geometric optics, is concerned with modeling how light rays travel through optical systems like that of our eyes. However, to fully consider the effects of small pupil size, as well as variations in the geometry and chromatic aberrations of the eye's lenses, wave optics and diffraction must be accounted for. Fourier optics, or scalar diffraction theory, cleanly handles effects such as wavefront aberrations, finite pupil size, and apodizing filtering, so we will first briefly give a background of Fourier optics. Next, we will discuss how wavefront aberrations are modeled, namely by the basis set of Zernike polynomials. Finally, we will describe the Stiles-Crawford effect, the physical cause of this effect, and how it is modeled.

Fourier optics

Huygens-Fresnel principle

Fourier optics is built upon the idea that the wave nature of light is modeled by the Huygens-Fresnel principle -- that every point on a wavefront of light is the source of new spherical waves. The summed interaction of these spherical waves at some observation plane determines what is observed at that plane. Here, it is assumed that the polarization of the electromagnetic field can be neglected, and instead, light can simply be modeled by a wavefunction that obeys the standard wave equation and represents electric or magnetic field. Hence, this is called scalar diffraction theory.

A direct result of this theory is that the diffraction effects of any imaging system can be modeled very cleanly by Fourier transforms. In fact the point spread function of an imaging system is given by [1]

h(u,v)=AλziP(x,y)exp{j2πλzi(ux+vy)}dxdy

where A is a constant amplitude, λ is the wavelength of monochromatic light, zi is the distance from the exit pupil to the imaging plane, P(x,y) is the pupil's complex transmittance function, (u,v) are image coordinates, and (x,y) are coordinates in the pupil plane. Thus, we can see that the PSF is just the Fraunhofer diffraction pattern, or Fourier transform, of the exit pupil. The intensity actually observed on the retina is |PSF|2.

The expression above has several consequences for modeling the PSF of the human eye. First, it handles monochromatic light, so in order to obtain the polychromatic PSF, the equation above must be computed for several (or many) wavelengths of light. Secondly, care must be taken to sample P(x,y) finely enough to avoid aliasing; the phase of this function must be slowly varying at the chosen sampling rate. In addition, care must be taken to pad P(x,y) with enough zero values to avoid "ringing" effects associated with the periodic boundary conditions of the discrete Fourier transform.

Diffraction-limited PSF and the eye

The pupil function P(x,y) of a diffraction-limited optical system is simply given by [1]

P(x,y)=circ(x2+y2w)

where circ(r) is 1 for r1 and 0 for r>1 and w is the radius of the pupil.

Airy disk

The Fourier transform of a circular pupil is the so-called Airy disk, given by [1]

U(r)=exp(jkz)exp(jkr22z)Ajλz[2J1(kwr/z)kwr/z]

where k=2π/λ, z is the distance from the pupil to the retina, and J1 is a Bessel function of the first kind.

Here, the diffraction-limited pupil function is a real function that has uniform amplitude. However, there are two effects in human eyes that make their PSFs non-ideal. The first is wavefront aberrations caused by distortions of the cornea, pupil, and lens of the eye. These are modeled by a complex phase function W(x,y) that modifies the pupil function. The second arises from the waveguide-like nature of the cone cells in the retina, which only capture light over a limited angular range. This is modeled by a amplitude variation A(x,y) in the pupil function. Thus, in general, we can model the complex pupil function as

P(x,y)=A(x,y)exp[jkW(x,y)]

Wavefront aberrations and Zernike polynomials

text text text

Stiles-Crawford effect

text text text


Toolbox code clean-up

text text text

Subheading

text text text

Subsubheading

text text text


Tutorial

text text text

Zernike polynomials

text text text

Stiles-Crawford effect

text text text

Human eye aberrations and correction using eyeglasses

text text text


Conclusions and future directions

text text text


References

  1. Goodman, J. W. (2005). Introduction to Fourier optics. 3rd ed. Englewood, Colo.: Roberts & Co.


Appendix I - Code and Data

Code

File:T Zernike.m

Data

Wavefront measurements of human eyes are part of the SVN repository. Wavefront optics toolbox


Appendix II - Work partition

Matthew Lew - Heavily edited wvfComputePupilFunction.m to remove unnecessary nested loops; removed sizeOfFieldPixels field of the wvf struct so that all parameters are defined in terms of physical dimensions, not pixels; constructed sections of tutorial dealing with SCE and vision correction with eyeglasses

Kevin Phuong - Constructed core of t_Zernike.m to demonstrate Zernike polynomials and their effect on PSFs; updated various functions of the toolbox to use wvfGet() and wvfSet().