Пример #1
0
async def marker_corners_cb(req: srpc.c.MarkersCorners.Request,
                            ui: WsClient) -> srpc.c.MarkersCorners.Response:

    # TODO should be rather returned in an event (it is possibly a long-running process)
    return srpc.c.MarkersCorners.Response(data=await hlp.run_in_executor(
        calibration.markers_corners, req.args.camera_parameters,
        image_from_str(req.args.image)))
Пример #2
0
async def calibration_cb(req: srpc.c.GetCameraPose.Request,
                         ui: WsClient) -> srpc.c.GetCameraPose.Response:

    # TODO estimated pose should be rather returned in an event (it is possibly a long-running process)
    return srpc.c.GetCameraPose.Response(data=await hlp.run_in_executor(
        calibration.estimate_camera_pose,
        req.args.camera_parameters,
        image_from_str(req.args.image),
        req.args.inverse,
    ))
Пример #3
0
def test_image_str() -> None:

    imarray = np.random.rand(16, 16, 3) * 255
    img = Image.fromarray(imarray.astype("uint8")).convert("RGB")

    img_str = image_to_str(img, target_format="png")
    assert isinstance(img_str, str)
    img2 = image_from_str(img_str)

    diff = ImageChops.difference(img, img2)
    assert diff.getbbox() is None, "Difference image is not empty!"
Пример #4
0
async def get_camera_pose_cb(req: srpc.c.GetCameraPose.Request,
                             ui: WsClient) -> srpc.c.GetCameraPose.Response:

    try:
        return srpc.c.GetCameraPose.Response(data=await hlp.run_in_executor(
            calibration.estimate_camera_pose,
            req.args.camera_parameters,
            image_from_str(req.args.image),
            req.args.inverse,
        ))
    except calibration.MarkerNotFound:  # this is ok
        raise
    except calibration.CalibrationException as e:  # this means a serious problem and should be logged
        glob.logger.warn(f"Failed to get camera pose. {str(e)}")
        raise
Пример #5
0
async def marker_corners_cb(req: srpc.c.MarkersCorners.Request,
                            ui: WsClient) -> srpc.c.MarkersCorners.Response:

    return srpc.c.MarkersCorners.Response(data=await hlp.run_in_executor(
        calibration.markers_corners, req.args.camera_parameters,
        image_from_str(req.args.image)))