def setup_reconstructed_data_small_npy(setup_gdrive_src_data_small): """ Loads AND Reconstructs SOURCE data. SIZE: 512 x 512 TYPE: .npy :param setup_gdrive_src_data_small: :return: physical data object containing reconstructed data """ bg_dat, sm_dat = setup_gdrive_src_data_small # compute initial reconstructor using background data img_reconstructor = ImgReconstructor(bg_dat, swing=0.03, wavelength=532) bg_stokes = img_reconstructor.compute_stokes(bg_dat) bg_stokes_normalized = img_reconstructor.stokes_normalization(bg_stokes) # compute sample stokes and correct with background data sm_stokes = img_reconstructor.compute_stokes(sm_dat) sm_stokes_normalized = img_reconstructor.stokes_normalization(sm_stokes) sm_stokes_normalized = img_reconstructor.correct_background(sm_stokes_normalized, bg_stokes_normalized) reconstructed_birefring = img_reconstructor.reconstruct_birefringence(sm_stokes_normalized) yield reconstructed_birefring
def test_complete_reconstruction(setup_gdrive_src_data_small): """ tests compute sequence: background correction of birefringence from intensity data one z, one t, one p No config file parsing No plotting Parameters ---------- setup_gdrive_src_data_small : pytest fixture to load data from gdrive Returns ------- """ bg_dat, sm_dat = setup_gdrive_src_data_small # compute initial reconstructor using background data img_reconstructor = ImgReconstructor(bg_dat, swing=0.03, wavelength=532) bg_stokes = img_reconstructor.compute_stokes(bg_dat) bg_stokes_normalized = img_reconstructor.stokes_normalization(bg_stokes) # compute sample stokes and correct with background data sm_stokes = img_reconstructor.compute_stokes(sm_dat) sm_stokes_normalized = img_reconstructor.stokes_normalization(sm_stokes) sm_stokes_normalized = img_reconstructor.correct_background( sm_stokes_normalized, bg_stokes_normalized) reconstructed_birefring = img_reconstructor.reconstruct_birefringence( sm_stokes_normalized) assert reconstructed_birefring.I_trans is not None assert reconstructed_birefring.retard is not None assert reconstructed_birefring.azimuth is not None assert reconstructed_birefring.polarization is not None
def setup_reconstructed_data_small_tif(setup_gdrive_src_data_small): """ Loads AND Reconstructs SOURCE data. SIZE: 512 x 512 TYPE: .tif :param setup_gdrive_src_data_small: :return: physical data object containing reconstructed data """ bg_dat, sm_dat = setup_gdrive_src_data_small # compute initial reconstructor using background data img_reconstructor = ImgReconstructor(bg_dat, swing=0.03, wavelength=532) bg_stokes = img_reconstructor.compute_stokes(bg_dat) bg_stokes_normalized = img_reconstructor.stokes_normalization(bg_stokes) # compute sample stokes and correct with background data sm_stokes = img_reconstructor.compute_stokes(sm_dat) sm_stokes_normalized = img_reconstructor.stokes_normalization(sm_stokes) sm_stokes_normalized = img_reconstructor.correct_background(sm_stokes_normalized, bg_stokes_normalized) reconstructed_birefring = img_reconstructor.reconstruct_birefringence(sm_stokes_normalized) # target data is scaled to uint16 (.tif) spol = (65536*(reconstructed_birefring.polarization - reconstructed_birefring.polarization.min()) / (reconstructed_birefring.polarization.ptp())).astype('uint16') sazi = (65536*(reconstructed_birefring.azimuth - reconstructed_birefring.azimuth.min()) / (reconstructed_birefring.azimuth.ptp())).astype('uint16') stran = (65536*(reconstructed_birefring.I_trans - reconstructed_birefring.I_trans.min()) / (reconstructed_birefring.I_trans.ptp())).astype('uint16') sret = (65536*(reconstructed_birefring.retard - reconstructed_birefring.retard.min()) / (reconstructed_birefring.retard.ptp())).astype('uint16') reconstructed_birefring.I_trans = stran reconstructed_birefring.retard = sret reconstructed_birefring.polarization = spol reconstructed_birefring.azimuth = sazi yield reconstructed_birefring
os.path.join(bg_data_path, 'img_000000000_State3 - Acquired Image_000.tif')), 'I45') bg_int.replace_image( tf.imread( os.path.join(bg_data_path, 'img_000000000_State4 - Acquired Image_000.tif')), 'I0') #%% """ reconstructor is initialized based on parameters from the experiment usually these params are found in the config file parsed from metadata or config.yml """ img_reconstructor = ImgReconstructor(bg_int.data.shape, bg_method="Local_fit", n_slice_local_bg=1, poly_fit_order=2, swing=0.03, wavelength=532, azimuth_offset=0, circularity='rcp') #%% print('computing background') background_stokes = img_reconstructor.compute_stokes(bg_int) background_normalized = img_reconstructor.stokes_normalization( background_stokes) #%% print('computing stokes') sample_stokes = img_reconstructor.compute_stokes(int_dat) sample_normalized = img_reconstructor.stokes_normalization(sample_stokes)