2D contours representation and simplification
|
Overloaded function. |
A contour2d is a set of polyline contours. |
|
A polyline contour is an ordered list of contour segment that form a continuous piece of frontier between 2 regions. |
|
A contour segment is an ordered list of contour elements that are considered to form a straight line segment.A contour element is a pair (edge_index, coordinates) where coordinates is a 2d point. |
- fit_contour_2d(*args, **kwargs)
Overloaded function.
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.int8]) -> higra.higram.Contour2d
Construct a contour_2d object from a graph cut of a 2d image with a 4 adjacency (non zero edges are part of the cut).
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.uint8]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.int16]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.uint16]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.int32]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.uint32]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.int64]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.uint64]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.float32]) -> higra.higram.Contour2d
fit_contour_2d(graph: hg::undirected_graph_internal::undirected_graph<hg::undirected_graph_internal::vecS>, shape: list[int], edgeWeights: numpy.ndarray[numpy.float64]) -> higra.higram.Contour2d
- class Contour2d
A contour2d is a set of polyline contours. Each polyline contour represent a continuous piece of contour between two regions.
- __getitem__(self: higra.higram.Contour2d, arg0: int) higra.higram.PolylineContour2d
- __init__(*args, **kwargs)
- __iter__(self: higra.higram.Contour2d) Iterator[higra.higram.PolylineContour2d]
Iterator on the polyline contours.
- __len__(self: higra.higram.Contour2d) int
Number of polyline contours.
- subdivide(self: higra.higram.Contour2d, epsilon: float = 0.1, relative_epsilon: bool = True, min_size: int = 2) None
Subdivide each segment of the contour such that: For each segment, the distance between the line joining the extremities of the segment and each of its elements is lower than the given threshold (Ramer–Douglas–Peucker algorithm) or smaller than the minimal specified size The threshold is equal to - epsilon if relative_epsilon is false - epsilon times the distance between the segment extremities if relative_epsilon is true
Implementation note: simply call subdivide on each polyline of the contour.
- class PolylineContour2d
A polyline contour is an ordered list of contour segment that form a continuous piece of frontier between 2 regions. Note that consecutive segments share their extremities: given two consecutive contour segments s1 and s2, the last element of s1 is equal to the first element of s2.
- __getitem__(self: higra.higram.PolylineContour2d, arg0: int) higra.higram.ContourSegment2d
- __init__(*args, **kwargs)
- __iter__(self: higra.higram.PolylineContour2d) Iterator[higra.higram.ContourSegment2d]
Iterator on the contour segments of the polyline contour.
- __len__(self: higra.higram.PolylineContour2d) int
Number of segments in the polyline contour.
- subdivide(self: higra.higram.PolylineContour2d, epsilon: float = 0.1, relative_epsilon: bool = True, min_size: int = 2) None
Subdivide the line such that the distance between the line joining the extremities of the contour segment and each of its elements is lower than the threshold ( Ramer–Douglas–Peucker algorithm) or smaller than the minimal specified size
The threshold is equal to - epsilon if relative_epsilon is false - epsilon times the distance between the segment extremities if relative_epsilon is true
- class ContourSegment2d
A contour segment is an ordered list of contour elements that are considered to form a straight line segment.A contour element is a pair (edge_index, coordinates) where coordinates is a 2d point.
- __getitem__(self: higra.higram.ContourSegment2d, arg0: int) tuple[int, tuple[float, float]]
- __init__(*args, **kwargs)
- __iter__(self: higra.higram.ContourSegment2d) Iterator[tuple[int, tuple[float, float]]]
Iterator on the contour elements of the contour segment.
- __len__(self: higra.higram.ContourSegment2d) int
Number of elements in the contour segment.
- angle(self: higra.higram.ContourSegment2d) float
Angle of the vector (last()-first()) in [-pi; pi].
- distance_to_point(self: higra.higram.ContourSegment2d, point: numpy.ndarray[numpy.float64]) float
Distance between the given point and the line defined by the fist and last element of the contour segment.
- norm(self: higra.higram.ContourSegment2d) float
Distance between first and last elements of the contour segment.