File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed
Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -406,7 +406,9 @@ def parse_cmap_values(
406406 return colors
407407
408408
409- def subsample_array (arr : np .ndarray , max_size : int = 1e6 ):
409+ def subsample_array (
410+ arr : np .ndarray , max_size : int = 1e6 , ignore_dims : Sequence [int ] | None = None
411+ ):
410412 """
411413 Subsamples an input array while preserving its relative dimensional proportions.
412414
@@ -444,6 +446,10 @@ def subsample_array(arr: np.ndarray, max_size: int = 1e6):
444446 max_size: int, default 1e6
445447 maximum number of elements in subsampled array
446448
449+ ignore_dims: Sequence[int], optional
450+ List of dimension indices to exclude from subsampling (i.e. retain full resolution).
451+ For example, `ignore_dims=[0]` will avoid subsampling along the first axis.
452+
447453 Returns
448454 -------
449455 np.ndarray
@@ -462,4 +468,12 @@ def subsample_array(arr: np.ndarray, max_size: int = 1e6):
462468 slices = tuple (
463469 slice (None , None , int (s )) for s in np .floor (arr .shape / ns ).astype (int )
464470 )
471+
472+ # ignore dims e.g. RGB, which we don't want to downsample
473+ if ignore_dims is not None :
474+ for dim in ignore_dims :
475+ slices [dim ] = slice (None )
476+
477+ slices = tuple (slices )
478+
465479 return np .asarray (arr [slices ])
You can’t perform that action at this time.
0 commit comments