chengkunli96 / NeuralOpticalBeamPropagation

This is a MSc project of UCL supervised by Professor Kaan.
1 stars 0 forks source link

Implement Angular spectrum function #2

Open chengkunli96 opened 3 years ago

chengkunli96 commented 3 years ago

This issue involves implementing the angular spectrum method that represents how light propagates in free space. For implementing this method, we will use python and pytorch. You can find the information in chapter 3.10 of Goodman's book which is "Introduction to Fourier Optics". Search the github repositories for a code space for the angular spectrum method. Find the book which implements the angular spectrum.

chengkunli96 commented 3 years ago

For testing the angular spectrum method, you can use the angular spectrum method to propagate the light from an image, and then you will get a new image. So when you reverse this propagation from the image you get, you will obtain the same image compared to the beginning.

chengkunli96 commented 3 years ago

I've found an implementation of the angular spectrum method in GitHub. The link is https://github.com/FeiWang0824/PhysenNet. And the angular spectrum method is implemented in the file Measure_step.py of this repository. Apart from this, there is a blog very useful which is https://rafael-fuente.github.io/simulating-diffraction-patterns-with-the-angular-spectrum-method-and-python.html.

chengkunli96 commented 3 years ago

The phase-object may be very complex, so we want to do the beam propagation during the whole plane which the beam incident. So, it is very important to add padding which should two times (2x) for the input image.