roi_handler
data.transform.roi.roi_handler
ROICalculator
Bases: ABC
ROI 좌표 계산을 위한 추상 클래스입니다.
RelativeBoxROI
Bases: ROICalculator
이미지 크기에 비례하는 상대좌표 박스로 ROI를 계산합니다.
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
PixelIntensityROI
Bases: ROICalculator
픽셀값이 intensity 범위에 들어오는 픽셀만 필터링한 뒤, 필터링 된 픽셀들의 컨투어를 찾고,
가장 면적이 큰 컨투어를 감싸는 최소 박스로 ROI를 계산합니다.
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
AutoRelativeBoxROI
Bases: RelativeBoxROI
RelativeBoxROI class with automatic coordinate calculation.
Monostate pattern applied to prevent ROI coordinate mismatch between train ~ validation dataset.
Attributes:
-
left(float) –ROI coordinates.
-
top(float) –ROI coordinates.
-
right(float) –ROI coordinates.
-
bottom(float) –ROI coordinates.
-
is_ready(bol) –Whether auto ROI coordinates is set.
-
image_hw(Optional[List[int]]) –dataset image size.
-
discard_outer_polygons(bool) –Flag for discarding polygons outside of current ROI region.
-
expand_ratio–Ratio for expanding ROI region. Larger value means more padding.
Example
in dataset building...
@property def files(self): return self._files
@files.setter def files(self, value): self._files = value
if isinstance(self.transform.roi_handler.roi_calculator, AutoRelativeBoxROI): self.transform.roi_handler.roi_calculator.autoupdate_roi_coordinate(self) self is dataset```
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
autoupdate_roi_coordinate
Automatically update ROI coordinate using dataset information.
Returns success flag.
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
ROIHandler
crop_box
crop_box(bboxes: BBoxesType, cropping_box: Union[ndarray, List[int]]) -> BBoxesType
bbox crop. An image is cropped at (new_left, new_top, new_right, new_bottom)
Source code in SaigeToolkit/data/transform/box_function.py
translate_polygon
translate_polygon(polygons: PolygonType, offset: Tuple[int]) -> PolygonType
Translate polyfon from [(x1, y1), ... ] to [(x1 - x_offset), (y1 - y_offset), ...]
Source code in SaigeToolkit/data/transform/polygon_function.py
crop
crop(image: Union[Image, Tensor, ndarray], coordinates: Union[List[int], Tuple[int, int, int, int]]) -> Union[Image, Tensor, ndarray]
이미지의 coordinates 좌표영역을 크롭합니다. coordinates가 이미지를 벗어나는 경우 zero padding 합니다.
Parameters:
-
image(Union[Image, Tensor, ndarray]) –image
-
coordinates(Union[List[int], Tuple[int, int, int, int]]) –[left, top, right, bottom]
Returns:
-
Union[Image, Tensor, ndarray]–Union[Image.Image, torch.Tensor, np.ndarray]: cropped image
Source code in SaigeToolkit/data/transform/image_function.py
read_image_size
read_image_size(image: Union[Image, Tensor, ndarray]) -> ImageSizeType
image size: (W, H)
Source code in SaigeToolkit/data/transform/image_function.py
fill_pixels_with_mask
fill_pixels_with_mask(image: Union[Image, ndarray], bool_mask: ndarray, value: Union[int, float] = 0) -> Union[Image, ndarray]
image 중 bool_mask=True인 픽셀들을 value로 채웁니다.
Parameters:
-
image(Union[Image, ndarray]) –image (HW or HWC)
-
bool_mask(ndarray) –boolean mask (HW)
-
value(Union[int, float], default:0) –. Defaults to 0.
Returns:
-
Union[Image, ndarray]–Union[Image.Image, np.ndarray]: 결과 이미지
Note
- image가 Image.Image인 경우, 결과 이미지도 Image.Image로 반환합니다.
- image의 값이 inplace로 변경됩니다. 값이 변경되지 않길 원한다면, copy를 해주세요.