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

1from skimage import filters 

2import numpy as np 

3import torch 

4 

5 

6def calc_porosity(data: np.ndarray | torch.Tensor) -> float: 

7 if isinstance(data, torch.Tensor): 

8 data = data.cpu().numpy() 

9 

10 threshold = filters.threshold_otsu(data) 

11 

12 binary_mask = data < threshold 

13 total_pixels = data.size 

14 void_pixels = np.sum(binary_mask) 

15 return void_pixels / total_pixels