Skip to content

Commit d4e292e

Browse files
improve typing
1 parent 31a9733 commit d4e292e

File tree

4 files changed

+19
-15
lines changed

4 files changed

+19
-15
lines changed

rosys/analysis/legacy/asyncio_page.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import logging
33

44
import numpy as np
5+
import numpy.typing as npt
56
from nicegui import ui
67

78
from rosys import run
@@ -13,12 +14,13 @@
1314

1415
def prepare_data(timings) -> tuple[list[str], list[dict[str, float]]]:
1516
def calc_box(data: list) -> dict[str, float]:
17+
percentiles: npt.NDArray[np.floating] = np.percentile(data, [0, 25, 50, 75, 100])
1618
return {
17-
'low': float(min(data)),
18-
'q1': float(np.percentile(data, 25)),
19-
'median': float(np.percentile(data, 50)),
20-
'q3': float(np.percentile(data, 75)),
21-
'high': float(max(data)),
19+
'low': percentiles[0],
20+
'q1': percentiles[1],
21+
'median': percentiles[2],
22+
'q3': percentiles[3],
23+
'high': percentiles[4],
2224
}
2325
timings = dict(sorted(timings.items(), key=lambda i: len(i[1]), reverse=True))
2426
names = [f'{html.escape(n)} ({len(w)} warnings):<br>{html.escape(w[0].details)}' for n, w in timings.items()]

rosys/vision/calibration.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,11 @@ def from_points(world_points: list[Point3d] | list[list[Point3d]],
163163
else:
164164
raise ValueError(f'Unknown camera model "{camera_model}"')
165165

166-
camera_matrix: list[list[float]] = K.tolist() # type: ignore
167-
distortion: list[float] = D.tolist()[0] # type: ignore
168-
intrinsics = Intrinsics(matrix=camera_matrix, distortion=distortion, size=image_size,
169-
model=camera_model, omnidir_params=OmnidirParameters(xi=xi))
166+
intrinsics = Intrinsics(matrix=cast(np.ndarray, K).tolist(),
167+
distortion=cast(np.ndarray, D).tolist()[0],
168+
size=image_size,
169+
model=camera_model,
170+
omnidir_params=OmnidirParameters(xi=xi))
170171

171172
rotation = Rotation.from_rvec(rvecs[0]).T
172173
translation = -np.array(rotation.R).dot(tvecs[0])
@@ -202,7 +203,8 @@ def project_to_image(self, coordinates: FloatArray, *, frame: Frame3d | None = N
202203
:return: (Nx2) The image coordinates of the projected points.
203204
"""
204205

205-
def project_to_image(self, coordinates: Point3d | list[Point3d] | FloatArray, *, frame: Frame3d | None = None) -> Point | None | list[Point | None] | FloatArray:
206+
def project_to_image(self, coordinates: Point3d | list[Point3d] | FloatArray, *,
207+
frame: Frame3d | None = None) -> Point | None | list[Point | None] | FloatArray:
206208

207209
if isinstance(coordinates, Point3d):
208210
return self.project_to_image([coordinates])[0]

rosys/vision/image.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,15 @@ def from_jpeg_bytes(cls, jpeg_bytes: bytes, *,
8989
time: float | None = None,
9090
metadata: dict[str, Any] | None = None) -> Self | None:
9191
"""Create an image from plain JPEG bytes. This runs a jpeg decode. Returns None if decoding fails."""
92-
decoded = decode_jpeg_image(jpeg_bytes)
93-
if decoded is None:
92+
array = decode_jpeg_image(jpeg_bytes)
93+
if array is None:
9494
return None
95-
array = decoded
9695
if len(array.shape) == 2:
9796
array = np.repeat(np.expand_dims(array, -1), repeats=3, axis=2)
9897
return cls.from_array(array, camera_id=camera_id, time=time, metadata=metadata)
9998

10099
@classmethod
101-
def from_array(cls, array: np.ndarray[Any, np.dtype[np.uint8]], *,
100+
def from_array(cls, array: ImageArray, *,
102101
camera_id: str = 'from_array',
103102
time: float | None = None,
104103
metadata: dict[str, Any] | None = None) -> Self:

rosys/vision/image_processing.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import PIL.Image
99

1010
from ..geometry import Rectangle
11+
from .image import ImageArray
1112
from .image_rotation import ImageRotation
1213
from .turbojpeg_wrapper import TURBO_JPEG
1314

@@ -31,7 +32,7 @@ def encode_image_as_jpeg(image: np.ndarray, compression_level: int = 90) -> byte
3132
return buffer.getvalue()
3233

3334

34-
def decode_jpeg_image(jpeg_bytes: bytes) -> np.ndarray | None:
35+
def decode_jpeg_image(jpeg_bytes: bytes) -> ImageArray | None:
3536
"""Decode JPEG bytes to NumPy array using TurboJPEG if available, otherwise PIL. Returns None if decoding failed."""
3637
try:
3738
if TURBO_JPEG is not None:

0 commit comments

Comments
 (0)