roi_handler
data.transform.roi.roi_handler
ROICalculator
RelativeBoxROI
Bases: ROICalculator
이미지 크기에 비례하는 상대좌표 박스로 ROI를 계산합니다.
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
set
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
__call__
__call__(image: Union[Image, ndarray], get_intermediate_results: bool = False, warmup: bool = False, **data) -> Dict
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
set
set(intensity: Union[Tuple[int, int], List[int]], expansion: int, inversion: bool, offset_left: float, offset_right: float, offset_top: float, offset_bottom: float) -> None
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
__call__
__call__(image: Union[Image, ndarray], get_intermediate_results: bool = False, warmup: bool = False, **data) -> Dict
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
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
__shared_state
class-attribute
instance-attribute
__shared_state = {'_is_ready': False, '_image_hw': None, '_left': -1.0, '_top': -1.0, '_right': -1.0, '_bottom': -1.0}
REGION_EXPAND_RATIO
class-attribute
instance-attribute
_check_auto_roi_is_ready
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
__call__
autoupdate_roi_coordinate
Automatically update ROI coordinate using dataset information.
Returns success flag.
Source code in SaigeToolkit/data/transform/roi/roi_calculator.py
ROIHandler
ROI 기능을 수행합니다. 이미지에 대한 ROI 좌표를 계산해 크롭하고, 크롭된 이미지에 blind_mask를 적용해 마스크 영역의 픽셀 값을 0으로 치환합니다.
Source code in SaigeToolkit/data/transform/roi/roi_handler.py
roi_calculator_types
class-attribute
instance-attribute
roi_calculator_types = {'simple': RelativeBoxROI, 'advanced': PixelIntensityROI, 'auto': AutoRelativeBoxROI}
set
set(mode: str, blind_mask: Union[None, ndarray, str], image_only: bool = False, discard_outer_polygons: bool = False, det_blind_mask_threshold: float = 0.5, **kwargs)
Source code in SaigeToolkit/data/transform/roi/roi_handler.py
apply_crop
apply_crop(image: Union[Image, ndarray, List[Union[Image, ndarray]]], return_revert_params: bool = False, warmup: bool = False, **data) -> Union[Dict, Tuple[Dict, Dict]]
Source code in SaigeToolkit/data/transform/roi/roi_handler.py
apply_mask
Source code in SaigeToolkit/data/transform/roi/roi_handler.py
__call__
__call__(return_revert_params: bool = False, warmup: bool = False, **data) -> Union[Dict, Tuple[Dict, Dict]]
Source code in SaigeToolkit/data/transform/roi/roi_handler.py
_check_polygon_within_box
Source code in SaigeToolkit/data/transform/roi/roi_handler.py
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를 해주세요.