unravel.image_tools.spatial_averaging module#
Use img_spatial_avg
(spatial_avg
) from UNRAVEL to load an image and apply 2D or 3D spatial averaging.
- Inputs:
3D image: .czi, .nii.gz, .ome.tif series, .tif series, .h5, .zarr
- Outputs:
Determined by the extension for .nii.gz and .zarr. Otherwise, saves as a .tif series.
Note
3D averaging: Applies a 3x3x3 kernel to each voxel and its 26 neighbors.
2D averaging: Applies a 3x3 kernel to each 2D slice independently.
The output array is the same size as the input.
Edges are zero-padded to preserve dimensions.
For .nii.gz output, you must specify both xy and z resolutions.
Usage:#
img_spatial_avg -i <tif_dir> -o spatial_avg.zarr -d 2 [-k 3] [-c 0] [-x 3.5232] [-z 6] [-dt uint16] [-r metadata_referenece.nii.gz] [-ao xyz] [-v]
- unravel.image_tools.spatial_averaging.spatial_average_3D(arr, kernel_size=3)[source]#
Apply a 3D spatial averaging filter to a 3D numpy array.
Parameters: - arr (np.ndarray): The input 3D array. - kernel_size (int): The size of the cubic kernel. Default is 3, for the current voxel and its 26 neighbors.
Returns: - np.ndarray: The array after applying the spatial averaging.
- unravel.image_tools.spatial_averaging.apply_2D_mean_filter(slice, kernel_size=(3, 3))[source]#
Apply a 2D mean filter to a single slice.
- unravel.image_tools.spatial_averaging.spatial_average_2D(volume, filter_func, kernel_size=(3, 3), threads=8)[source]#
Apply a specified 2D filter function to each slice of a 3D volume in parallel.
Parameters: - volume (np.ndarray): The input 3D array. - filter_func (callable): The filter function to apply to each slice. - kernel_size (tuple): The dimensions of the kernel to be used in the filter. - threads (int): The number of parallel threads to use.
Returns: - np.ndarray: The volume processed with the filter applied to each slice.