retardance_pr_p, azimuth_p, theta_p = wo.scattering_potential_tensor_to_3D_orientation_PN( f_tensor, material_type='positive', reg_ret_pr=reg_ret_pr) retardance_pr_n, azimuth_n, theta_n = wo.scattering_potential_tensor_to_3D_orientation_PN( f_tensor, material_type='negative', reg_ret_pr=reg_ret_pr) retardance_pr = np.array([retardance_pr_p, retardance_pr_n]) azimuth = np.array([azimuth_p, azimuth_n]) theta = np.array([theta_p, theta_n]) p_mat_map = wo.optic_sign_probability(mat_map, mat_map_thres=0.04) phase = wo.phase_inc_correction(f_tensor[0], retardance_pr[0], theta[0]) phase_PT, absorption_PT, retardance_pr_PT = [ wo.unit_conversion_from_scattering_potential_to_permittivity( SP_array, lambda_illu, n_media=n_media, imaging_mode='3D') for SP_array in [phase, f_tensor[1].copy(), retardance_pr] ] retardance_pr_PT = np.array([((-1)**i) * wo.wavelet_softThreshold( ((-1)**i) * retardance_pr_PT[i], 'db8', 0.0002, level=1) for i in range(2)]) orientation_continuity_map = wo.orientation_3D_continuity_map( azimuth[0], theta[0], psz_ps_ratio=z_step / ps, avg_px_size=10, reg_ret_pr=1e-1) retardance_pr_PT *= orientation_continuity_map[np.newaxis, ...] # save results to zarr array writer = WaveorderWriter(output_path, hcs=False, hcs_meta=None, verbose=True) writer.create_zarr_root('uPTI_physical.zarr') position = 0 chan_names_phys = [
retardance_pr_p, azimuth_p, theta_p = wo.scattering_potential_tensor_to_3D_orientation_PN( f_tensor, material_type='positive', reg_ret_pr=reg_ret_pr) retardance_pr_n, azimuth_n, theta_n = wo.scattering_potential_tensor_to_3D_orientation_PN( f_tensor, material_type='negative', reg_ret_pr=reg_ret_pr) retardance_pr = np.array([retardance_pr_p, retardance_pr_n]) azimuth = np.array([azimuth_p, azimuth_n]) theta = np.array([theta_p, theta_n]) p_mat_map = wo.optic_sign_probability(mat_map, mat_map_thres=0.09) phase = wo.phase_inc_correction(f_tensor[0], retardance_pr[0], theta[0]) phase_PT, absorption_PT, retardance_pr_PT = [ wo.unit_conversion_from_scattering_potential_to_permittivity( SP_array, lambda_illu, n_media=n_media, imaging_mode='3D') for SP_array in [phase, f_tensor[1].copy(), retardance_pr] ] retardance_pr_PT = np.array([((-1)**i) * wo.wavelet_softThreshold( ((-1)**i) * retardance_pr_PT[i], 'db8', 0.004, level=1) for i in range(2)]) # save results to zarr array writer = WaveorderWriter(output_path, hcs=False, hcs_meta=None, verbose=True) writer.create_zarr_root('uPTI_physical.zarr') position = 0 chan_names_phys = [ 'Phase3D', 'Retardance3D', 'Orientation', 'Inclination', 'Optic_sign' ] phys_data_array = np.transpose( np.array([ phase_PT, np.abs(retardance_pr_PT[0]), azimuth[0], theta[0], p_mat_map ]), (0, 3, 1, 2))[np.newaxis, ...] data_shape_phys = phys_data_array.shape