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
    )