Spaces:
Sleeping
Sleeping
Download src/models/segment.py from so-21-si/spot-the-diff: direct link, hf CLI and curl.
- Browser
- Download file 740 Bytes
-
https://huggingface.co/spaces/so-21-si/spot-the-diff/resolve/main/src/models/segment.py
- Command line
-
hf download hf://spaces/so-21-si/spot-the-diff/src/models/segment.py
-
curl -L -o segment.py https://huggingface.co/spaces/so-21-si/spot-the-diff/resolve/main/src/models/segment.py
740 Bytes
| """Segment data model for detected objects.""" | |
| from __future__ import annotations | |
| from dataclasses import dataclass, field | |
| import numpy as np | |
| class Segment: | |
| """A detected object segment in an image.""" | |
| id: int | |
| mask: np.ndarray # (H, W) boolean mask | |
| bbox: list[int] # [x1, y1, x2, y2] | |
| area: int | |
| confidence: float = 0.0 | |
| saliency_score: float = 0.0 | |
| def width(self) -> int: | |
| return self.bbox[2] - self.bbox[0] | |
| def height(self) -> int: | |
| return self.bbox[3] - self.bbox[1] | |
| def center(self) -> tuple[int, int]: | |
| cx = (self.bbox[0] + self.bbox[2]) // 2 | |
| cy = (self.bbox[1] + self.bbox[3]) // 2 | |
| return cx, cy | |