v0.3.0
New Features
Hardware Interfaces
- Added a new interface for
Meadowlarkthat is compatible with the different types of SDKs (HDMI, PCIe, ...). Thanks to @darikoneil , @nobias , and Anna at Meadowlark. - Completed the interface for
HoloeyeSLMs. Thanks to @mkm2 . - Added a USB interface for
HamamatsuSLMs. Thanks to @ninovarde . - Polished the
Baslercamera interface. Thanks to @EiseZ , @Elenamr01 , @philip-rk , and @sumiya-kuroda . - Some polish and improvements to the
MindVisioncamera interface. - Added WOI support for the
AlliedVisioncamera interface. Thanks to @bodokaiser . - Some changes to
Webcam, including a woi interface and embedded sleeps which circumstantially seem to improve reliability. - Added remote interface where a
Servercan host cameras and SLMs which clients can connect to withRemoteCameraandRemoteSLM. For instance, we had a 20 MP camera that for whatever reason wasn't playing nicely with the computer with the GPU and SLMs, so this feature allows that camera to be hosted on a different computer. This feature was inspired in part by slmpy's server. - Made
CameraandSLMexplicitly abstract as a resolution to #92 . - Some polish to camera and SLM plots.
- Crosshair feature for live cameras. (Also centroiding thanks to @bodokaiser ).
Other Changes
- Modified
binaryto accept vectors with coordinate larger than 1, which are interpreted as instead pixel_periods for the gratings. - Added
quadrantandbahtinovalignment masks. Thanks to @bodokaiser for suggestingquadrant. - Started the process of typehinting (this will continue to the rest of the package if it looks alright) and autodocing the types.
- Fixes and upgrades to
CompressedSpotHologram, includingrefine_offset()and refactoring of the CUDA kernels. - Readded a default value for
.spot_integration_width_ijwhich is the integration size on the camera. The user should overwrite this default as needed. take_tileto tile a stack of images into a grid. Faster useful alternative to and withintake_plot.- New imaging functions
image_centroidsandimage_stdwhich are light wrappers forimage_positionsandimage_variances. - New imaging functions
image_remove_blaze,image_vortices_remove,image_reduce_wrapsto help with processing numerical phase patterns (e.g. wavefront calibration results). - Improvements and helper functions for wavefront calibration.
wavefront_calibrate_zernike_smoothprovides nearest-neighbor filtering of the multipoint Zernike results to reduce noise. This should be applied intermittently throughout a calibration as desired. Future work will provide the user with a more structured interface for multipoint Zernike wavefront calibration. - Performance improvements to Lloyd's algorithm: previously this algorithm operated by blitting a polygon onto an image and calculating the centroid numerically (inefficient). Now the centroid of the polygon is calculated analytically.
- Updated package citation and badges.
- Assorted documentation.
Bugfixes
- Fixed a bug with
Thorlabsfor 0.2.0+. Thanks to @calebrich . - Fixed a bug with
PILnot being imported in SLM vendor phase upload. Thanks to @ymelul-ibec . - Bugfix to
takewhich would erroneouslytakeevery other pixel on occasion. - Minor bugfixes with datatyping, documentation.
Pull Requests
- Update thorlabs.py by @calebrich in #98
- SLM Hamamatsu by @ichristen in #106
- Added support for Holoeye SLMs by @mkm2 in #105
- Meadowlark Interface for PCIe by @darikoneil in #90
- Camera documentation by @ichristen in #107
- Remote + Gratings. by @ichristen in #93
- Fixes a few bugs and an inconsistency in the updated meadowlark.py for 3.0.0 by @bodokaiser in #109
- Adds centroid (center of mass) crosshair widget to camera viewer by @bodokaiser in #111
- Fix canvas bug for pyglet 2.1+ by @ichristen in #116
- Adds woi support to Alliedvision camera by @bodokaiser in #110
- Fix basler serial number from list by @EiseZ in #113
- Add Image import to slm.py by @ymelul-ibec in #129
- basler2.py by @Elenamr01 in #119
New Contributors
- @calebrich made their first contribution in #98
- @mkm2 made their first contribution in #105
- @darikoneil made their first contribution in #90
- @EiseZ made their first contribution in #113
- @ymelul-ibec made their first contribution in #129
- @Elenamr01 made their first contribution in #119
Full Changelog: v0.2.1...v0.3.0