Shortcuts

Note

You are reading the documentation for MMOCR 0.x, which will soon be deprecated by the end of 2022. We recommend you upgrade to MMOCR 1.0 to enjoy fruitful new features and better performance brought by OpenMMLab 2.0. Check out the maintenance plan, changelog, code and documentation of MMOCR 1.0 for more details.

Source code for mmocr.datasets.pipelines.box_utils

# Copyright (c) OpenMMLab. All rights reserved.
import numpy as np

import mmocr.utils as utils


[docs]def sort_vertex(points_x, points_y): """Sort box vertices in clockwise order from left-top first. Args: points_x (list[float]): x of four vertices. points_y (list[float]): y of four vertices. Returns: sorted_points_x (list[float]): x of sorted four vertices. sorted_points_y (list[float]): y of sorted four vertices. """ assert utils.is_type_list(points_x, (float, int)) assert utils.is_type_list(points_y, (float, int)) assert len(points_x) == 4 assert len(points_y) == 4 vertices = np.stack((points_x, points_y), axis=-1).astype(np.float32) vertices = _sort_vertex(vertices) sorted_points_x = list(vertices[:, 0]) sorted_points_y = list(vertices[:, 1]) return sorted_points_x, sorted_points_y
def _sort_vertex(vertices): assert vertices.ndim == 2 assert vertices.shape[-1] == 2 N = vertices.shape[0] if N == 0: return vertices center = np.mean(vertices, axis=0) directions = vertices - center angles = np.arctan2(directions[:, 1], directions[:, 0]) sort_idx = np.argsort(angles) vertices = vertices[sort_idx] left_top = np.min(vertices, axis=0) dists = np.linalg.norm(left_top - vertices, axis=-1, ord=2) lefttop_idx = np.argmin(dists) indexes = (np.arange(N, dtype=np.int) + lefttop_idx) % N return vertices[indexes]
[docs]def sort_vertex8(points): """Sort vertex with 8 points [x1 y1 x2 y2 x3 y3 x4 y4]""" assert len(points) == 8 vertices = _sort_vertex(np.array(points, dtype=np.float32).reshape(-1, 2)) sorted_box = list(vertices.flatten()) return sorted_box
Read the Docs v: v0.6.3
Versions
latest
stable
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
v0.4.1
v0.4.0
v0.3.0
v0.2.1
v0.2.0
v0.1.0
dev-1.x
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.