.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "wo_examples/models/inplane_oriented_thick_pol3d_vector.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_wo_examples_models_inplane_oriented_thick_pol3d_vector.py: In plane oriented thick pol3d vector ==================================== In plane oriented thick pol3d vector summary .. GENERATED FROM PYTHON SOURCE LINES 7-100 .. code-block:: Python import napari import torch from waveorder.models import inplane_oriented_thick_pol3d_vector # Parameters # all lengths must use consistent units e.g. um zyx_shape = (101, 256, 256) swing = 0.1 scheme = "5-State" yx_pixel_size = 6.5 / 63 z_pixel_size = 0.15 wavelength_illumination = 0.532 z_padding = 0 index_of_refraction_media = 1.3 numerical_aperture_illumination = 0.5 numerical_aperture_detection = 1.2 fourier_oversample_factor = 1 # Create a phantom fzyx_object = inplane_oriented_thick_pol3d_vector.generate_test_phantom( zyx_shape ) # Calculate transfer function ( sfZYX_transfer_function, intensity_to_stokes_matrix, singular_system, ) = inplane_oriented_thick_pol3d_vector.calculate_transfer_function( swing, scheme, zyx_shape, yx_pixel_size, z_pixel_size, wavelength_illumination, z_padding, index_of_refraction_media, numerical_aperture_illumination, numerical_aperture_detection, fourier_oversample_factor=fourier_oversample_factor, ) # Display transfer function viewer = napari.Viewer() inplane_oriented_thick_pol3d_vector.visualize_transfer_function( viewer, sfZYX_transfer_function, zyx_scale=(z_pixel_size, yx_pixel_size, yx_pixel_size), ) input("Showing transfer functions. Press to continue...") viewer.layers.select_all() viewer.layers.remove_selected() # Simulate szyx_data = inplane_oriented_thick_pol3d_vector.apply_transfer_function( fzyx_object, sfZYX_transfer_function, intensity_to_stokes_matrix, ) # Display arrays = [ (szyx_data, "Data"), (fzyx_object, "Object"), ] for array in arrays: viewer.add_image(torch.real(array[0]).cpu().numpy(), name=array[1]) # Reconstruct for reg_strength in [0.005, 0.008, 0.01, 0.05, 0.1]: fzyx_object_recon = ( inplane_oriented_thick_pol3d_vector.apply_inverse_transfer_function( szyx_data, singular_system, intensity_to_stokes_matrix, regularization_strength=reg_strength, ) ) viewer.add_image( torch.real(fzyx_object_recon).cpu().numpy(), name=f"Object - recon, reg_strength={reg_strength}", ) viewer.grid.enabled = True viewer.grid.shape = (2, 5) viewer.dims.axis_labels = ["COMPONENT", "Z", "Y", "X"] input("Showing object, data, and recon. Press to quit...") .. _sphx_glr_download_wo_examples_models_inplane_oriented_thick_pol3d_vector.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: inplane_oriented_thick_pol3d_vector.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: inplane_oriented_thick_pol3d_vector.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: inplane_oriented_thick_pol3d_vector.zip `