Skip to content

liblaf.melon.io.wrap ยค

Modules:

  • landmarks โ€“
  • polygons โ€“

Functions:

  • get_landmarks_path โ€“
  • get_polygons_path โ€“
  • load_landmarks โ€“
  • load_polygons โ€“
  • save_landmarks โ€“
  • save_polygons โ€“

get_landmarks_path ยค

get_landmarks_path(path: str | PathLike[str]) -> Path
Source code in src/liblaf/melon/io/wrap/landmarks/_utils.py
5
6
7
8
9
def get_landmarks_path(path: str | os.PathLike[str]) -> Path:
    path: Path = Path(path)
    if path.suffix != ".json":
        return path.with_suffix(".landmarks.json")
    return path

get_polygons_path ยค

get_polygons_path(path: str | PathLike[str]) -> Path
Source code in src/liblaf/melon/io/wrap/polygons/_utils.py
5
6
7
8
9
def get_polygons_path(path: str | os.PathLike[str]) -> Path:
    path: Path = Path(path)
    if path.suffix != ".json":
        return path.with_suffix(".polygons.json")
    return path

load_landmarks ยค

load_landmarks(
    path: str | PathLike[str],
) -> Float[ndarray, "N 3"]
Source code in src/liblaf/melon/io/wrap/landmarks/_reader.py
12
13
14
15
16
17
def load_landmarks(path: str | os.PathLike[str]) -> Float[np.ndarray, "N 3"]:
    path: Path = get_landmarks_path(path)
    if not path.exists():
        return np.empty((0, 3), dtype=float)
    data: list[dict[str, float]] = grapes.load(path)
    return np.asarray([[p["x"], p["y"], p["z"]] for p in data])

load_polygons ยค

load_polygons(path: StrPath) -> Integer[ndarray, ' N']
Source code in src/liblaf/melon/io/wrap/polygons/_reader.py
17
18
19
20
def load_polygons(path: StrPath) -> Integer[np.ndarray, " N"]:
    path: Path = get_polygons_path(path)
    data: list[int] = grapes.load(path)
    return np.asarray(data)

save_landmarks ยค

save_landmarks(
    path: str | PathLike[str],
    points: Float[ArrayLike, "N 3"],
) -> None
Source code in src/liblaf/melon/io/wrap/landmarks/_writer.py
12
13
14
15
16
17
18
19
20
def save_landmarks(
    path: str | os.PathLike[str], points: Float[ArrayLike, "N 3"]
) -> None:
    path: Path = get_landmarks_path(path)
    points: Float[np.ndarray, "N 3"] = np.asarray(points)
    data: list[dict[str, float]] = [
        {"x": p[0], "y": p[1], "z": p[2]} for p in points.tolist()
    ]
    grapes.save(path, data)

save_polygons ยค

save_polygons(
    path: str | PathLike[str],
    polygons: Bool[ArrayLike, " N"]
    | Integer[ArrayLike, " N"],
) -> None
Source code in src/liblaf/melon/io/wrap/polygons/_writer.py
12
13
14
15
16
17
18
19
20
def save_polygons(
    path: str | os.PathLike[str],
    polygons: Bool[ArrayLike, " N"] | Integer[ArrayLike, " N"],
) -> None:
    path: Path = get_polygons_path(path)
    polygons = np.asarray(polygons)
    if np.isdtype(polygons.dtype, "bool"):
        polygons = np.flatnonzero(polygons)
    grapes.save(path, polygons.tolist())