Compute scan interval according to the image size, roi size and overlap. Scan interval will be `int((1 - overlap) * roi_size)`, if interval is 0, use 1 instead to make sure sliding window works.
(
image_size: Sequence[int], roi_size: Sequence[int], num_spatial_dims: int, overlap: Sequence[float]
)
| 397 | |
| 398 | |
| 399 | def _get_scan_interval( |
| 400 | image_size: Sequence[int], roi_size: Sequence[int], num_spatial_dims: int, overlap: Sequence[float] |
| 401 | ) -> tuple[int, ...]: |
| 402 | """ |
| 403 | Compute scan interval according to the image size, roi size and overlap. |
| 404 | Scan interval will be `int((1 - overlap) * roi_size)`, if interval is 0, |
| 405 | use 1 instead to make sure sliding window works. |
| 406 | |
| 407 | """ |
| 408 | if len(image_size) != num_spatial_dims: |
| 409 | raise ValueError(f"len(image_size) {len(image_size)} different from spatial dims {num_spatial_dims}.") |
| 410 | if len(roi_size) != num_spatial_dims: |
| 411 | raise ValueError(f"len(roi_size) {len(roi_size)} different from spatial dims {num_spatial_dims}.") |
| 412 | |
| 413 | scan_interval = [] |
| 414 | for i, o in zip(range(num_spatial_dims), overlap): |
| 415 | if roi_size[i] == image_size[i]: |
| 416 | scan_interval.append(int(roi_size[i])) |
| 417 | else: |
| 418 | interval = int(roi_size[i] * (1 - o)) |
| 419 | scan_interval.append(interval if interval > 0 else 1) |
| 420 | return tuple(scan_interval) |
| 421 | |
| 422 | |
| 423 | def _flatten_struct(seg_out): |
no test coverage detected
searching dependent graphs…