Coverage for supercat/metrics.py: 100.00%
11 statements
« prev ^ index » next coverage.py v7.10.6, created at 2026-09-11 13:26 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2026-09-11 13:26 +0000
1from skimage import filters
2import numpy as np
3import torch
6def calc_porosity(data: np.ndarray | torch.Tensor) -> float:
7 if isinstance(data, torch.Tensor):
8 data = data.cpu().numpy()
10 threshold = filters.threshold_otsu(data)
12 binary_mask = data < threshold
13 total_pixels = data.size
14 void_pixels = np.sum(binary_mask)
15 return void_pixels / total_pixels