API Reference#
Client API#
The PanoSAM class is the main entry point.
PanoSAM
dataclass
#
PanoSAM(engine: SegmentationEngine, views: ViewsInput = PerspectivePreset.DEFAULT, deduper: Optional[SphereMaskDeduplicationEngine] = None, default_options: SegmentationOptions = SegmentationOptions(), default_dedup: DedupOptions = DedupOptions())
High-level segmentation client for panoramas.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
engine
|
SegmentationEngine
|
Segmentation engine (required). Use SAM3Engine or a custom engine conforming to the SegmentationEngine protocol. |
required |
views
|
ViewsInput
|
Perspective preset(s) or custom PerspectiveMetadata list. |
DEFAULT
|
deduper
|
Optional[SphereMaskDeduplicationEngine]
|
Optional custom deduplication engine. |
None
|
default_options
|
SegmentationOptions
|
Default segmentation options (threshold, mask_threshold, etc.). |
SegmentationOptions()
|
default_dedup
|
DedupOptions
|
Default deduplication options (min_iou, use_union). |
DedupOptions()
|
Example
from panosam import PanoSAM, PerspectivePreset from panosam.engines.sam3 import SAM3Engine engine = SAM3Engine() ps = PanoSAM(engine=engine, views=PerspectivePreset.DEFAULT) result = ps.segment("panorama.jpg", "car")
SegmentationResult
dataclass
#
SegmentationResult(prompt: str, masks: Sequence[SphereMaskResult], image_path: Optional[str] = None, perspective_preset: Optional[str] = None, perspective_presets: Optional[Sequence[str]] = None)
Segmentation output plus metadata, with preview-tool-friendly JSON export.
save_json
#
Save segmentation results in a JSON file suitable for the preview tool.
PerspectivePreset
#
Bases: str, Enum
Pre-defined perspective configurations for common object scales.
SegmentationOptions
dataclass
#
SegmentationOptions(threshold: float = 0.5, mask_threshold: float = 0.5, simplify_tolerance: float = 0.005)
Inference options passed to the underlying SAM engine.
DedupOptions
dataclass
#
Deduplication options applied after multi-view segmentation.
Module Structure#
panosam/
├── api/ # Client API
│ ├── client.py # PanoSAM
│ └── models.py # SegmentationResult, options, SegmentationEngine protocol
├── engines/ # Segmentation engines (lazily imported)
│ └── sam3.py # SAM3Engine (requires [sam3])
├── sam/ # Mask models
│ ├── models.py # FlatMaskResult, SphereMaskResult
│ └── utils.py # Visualization (requires [viz])
├── dedup/ # Deduplication
│ └── detection.py # SphereMaskDeduplicationEngine
├── image/ # Panorama handling
│ ├── models.py # PanoramaImage, PerspectiveMetadata
│ └── perspectives.py # Presets, generate_perspectives()
└── geometry.py # Coordinate conversion utilities
Submodules#
- Engines -
SegmentationEngineprotocol andSAM3Engine - Image - Panorama and perspective classes
- Deduplication - Mask deduplication
- Geometry - Coordinate conversion
- Visualization - Mask visualization (requires
[viz])