Module brevettiai.data.image.feature_calculator
Expand source code
from pydantic import BaseModel
from typing import Tuple
class PolygonFeatures(BaseModel):
path_length: float
area: float
centroid: Tuple[float, float]
bbox: Tuple[float, float, float, float]
moments_hu: Tuple[float, float, float, float, float, float, float]
@classmethod
def calculate_features(cls, annotation: 'PointsAnnotation'):
hu_moments = tuple(annotation.hu_moments.flatten())
return cls(
path_length=annotation.path_length,
area=annotation.area,
bbox=tuple(annotation.bbox),
centroid=annotation.centroid,
moments_hu=hu_moments
)
Classes
class PolygonFeatures (**data: Any)
-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class PolygonFeatures(BaseModel): path_length: float area: float centroid: Tuple[float, float] bbox: Tuple[float, float, float, float] moments_hu: Tuple[float, float, float, float, float, float, float] @classmethod def calculate_features(cls, annotation: 'PointsAnnotation'): hu_moments = tuple(annotation.hu_moments.flatten()) return cls( path_length=annotation.path_length, area=annotation.area, bbox=tuple(annotation.bbox), centroid=annotation.centroid, moments_hu=hu_moments )
Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var area : float
var bbox : Tuple[float, float, float, float]
var centroid : Tuple[float, float]
var moments_hu : Tuple[float, float, float, float, float, float, float]
var path_length : float
Static methods
def calculate_features(annotation: PointsAnnotation)
-
Expand source code
@classmethod def calculate_features(cls, annotation: 'PointsAnnotation'): hu_moments = tuple(annotation.hu_moments.flatten()) return cls( path_length=annotation.path_length, area=annotation.area, bbox=tuple(annotation.bbox), centroid=annotation.centroid, moments_hu=hu_moments )