def test_undistort_static_radtan(): image = imread(DATA_DIR / "static-cam0-98.png") expected = imread(DATA_DIR / "static-cam0-98-undistorted-radtan.png") intrinsics_file = DATA_DIR / "camchain-static-radtan.yaml" cam = CameraIntrinsics.from_kalibr_yaml(intrinsics_file, "cam0") actual = cam.get_undistorter(extent=ImageExtent.OnlyValid).undistort_image(image) assert np.allclose(actual, expected)
def test_camera_intrinsics_omni(): cam = CameraIntrinsics.from_kalibr_yaml(camchain, "cam1") assert cam.model == CameraModel.Omni assert np.allclose(cam.intrinsics, [0.80065662, 833.006, 830.345, 373.850, 253.749]) with pytest.raises(NotImplementedError): cam.intrinsic_matrix assert cam.distortion_model == DistortionModel.RadTan assert np.allclose(cam.distortion_coeffs, [-0.33518750, 0.13211436, 0.00055967, 0.00057686]) assert cam.width == 752 assert cam.height == 480
def test_camera_intrinsics_file(camchain_path): cam = CameraIntrinsics.from_kalibr_yaml(camchain_path.open(), "cam0") _check_cam0(cam)
def test_camera_intrinsics_only(): camchain_first = "\n".join(camchain.splitlines()[:13]) cam = CameraIntrinsics.from_kalibr_yaml(camchain_first) _check_cam0(cam)
def test_camera_intrinsics_cam0(): cam = CameraIntrinsics.from_kalibr_yaml(camchain, "cam0") _check_cam0(cam)
def test_load_empty_file(tmp_path, content): file = tmp_path / "temp" file.write_text(content) with pytest.raises(ValueError): CameraIntrinsics.from_kalibr_yaml(file)
def test_load_empty_stirng(): with pytest.raises(ValueError): CameraIntrinsics.from_kalibr_yaml("")