| 1886 | return f |
| 1887 | |
| 1888 | def randomize(self, data: Any | None = None) -> None: |
| 1889 | super().randomize(None) |
| 1890 | if not self._do_transform: |
| 1891 | return None |
| 1892 | num_control_point = self.R.randint(self.num_control_points[0], self.num_control_points[1] + 1) |
| 1893 | self.reference_control_points = np.linspace(0, 1, num_control_point) |
| 1894 | self.floating_control_points = np.copy(self.reference_control_points) |
| 1895 | for i in range(1, num_control_point - 1): |
| 1896 | self.floating_control_points[i] = self.R.uniform( |
| 1897 | self.floating_control_points[i - 1], self.floating_control_points[i + 1] |
| 1898 | ) |
| 1899 | |
| 1900 | def __call__(self, img: NdarrayOrTensor, randomize: bool = True) -> NdarrayOrTensor: |
| 1901 | img = convert_to_tensor(img, track_meta=get_track_meta()) |