Skip to content

WitsOCLab/StokesCamera

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-time Stokes Polarimetry using a Polarisation Camera

Creator

Mitchell A. Cox
School of Electrical and Information Engineering, University of the Witwatersrand, Johannesburg, South Africa
Email: mitchell.cox@wits.ac.za
Homepage: https://www.wits.ac.za/oclab


Journal Paper

If you use this work, please cite our journal paper (which contains many details):

https://opg.optica.org/ao/abstract.cfm?uri=ao-62-29-7828

@article{cox2023stokes, title={Real-time Stokes polarimetry using a polarization camera}, author={Cox, Mitchell A and Rosales-Guzm{'a}n, Carmelo}, journal={Applied Optics}, volume={62}, number={29}, pages={7828--7836}, year={2023}, publisher={Optica Publishing Group} }

Abstract

This lab note introduces the "Stokes Camera," a simple and novel experimental arrangement for real-time measurement of spatial amplitude and polarisation, leading to spatially resolved Stokes parameters. This setup uses a polarisation sensitive camera combined with a fixed quarter-wave plate. This offers a one-shot, digital solution for polarisation measurement that mainly depends on the camera's frame rate and the computation speed of the associated code. Moreover, this document provides background information on relevant polarisation theory and vector vortex beams, employed as an exemplification of the device's capabilities.


Table of Contents


Getting Started

Some instructions and details are provided in the associated journal paper (citation TBD).

  1. Create a video object using the MATLAB Image Acquisition Toolbox. Make note of the important line of code, which is something like v = videoinput("gige", 1, "Mono12Packed");
  2. While you have a preview window open (with the toolbox, or call preview(v); after creating the video object), make sure the two halves of the beam are visible on the camera.
  3. Simply call CameraPreviewStokes(v);

Note: The first run will take a few minutes while the code finds the overlap between the halves of the beam. Don't change the alignment from the beamsplitter onwards after this point.

Please feel free the check out the code. It's quite straight forward. There are additional options to use, such as a moving average of a number of frames. This helps with alignment with a moving beam (such as in turbulence).

If you make enhancements, changes, etc. that will benefit the community, please fork this repository, commit your changes to your own repo and then send us a pull request!

Creating "Stokes Plots"

Please see the file StokesPlot.m. When viewing the CameraPreviewStokes, hit 'p' on your keyboard and it will dump a timestamped .mat file with the various polaristion and stokes matrices. These can be input and plot as you desire.


License

This project is licensed under the MIT License. For more details, see the LICENSE file.


Acknowledgements

Thanks to Cade Ribiero from the Wits Structured Light Lab for initial testing and feedback.

About

Real-time stokes polarimetry using a polarisation camera and MATLAB (for now...)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages