def METHOD_NAME(self,
                     points: np.ndarray,
                     min_width: int = 0) -> List[float]:
    """Convert a text mask represented by point coordinates sequence into a
    text boundary.
    Args:
        points (ndarray): Mask index of size (n, 2).
        min_width (int): Minimum bounding box width to be converted. Only
            applicable to 'quad' type. Defaults to 0.
    Returns:
        list[float]: The text boundary point coordinates (x, y) list.
        Return [] if no text boundary found.
    """
    assert isinstance(points, np.ndarray)
    assert points.shape[1] == 2
    assert self.text_repr_type in ['quad', 'poly']
    if self.text_repr_type == 'quad':
        rect = cv2.minAreaRect(points)
        vertices = cv2.boxPoints(rect)
        boundary = []
        if min(rect[1]) >= min_width:
            boundary = [p for p in vertices.flatten().tolist()]
    elif self.text_repr_type == 'poly':
        height = np.max(points[:, 1]) + 10
        width = np.max(points[:, 0]) + 10
        mask = np.zeros((height, width), np.uint8)
        mask[points[:, 1], points[:, 0]] = 255
        contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL,
                                       cv2.CHAIN_APPROX_SIMPLE)
        boundary = list(contours[0].flatten().tolist())
    if len(boundary) < 8:
        return []
    return boundary