visualize
Module diagram
classDiagram
class visualize {
}
class draw {
}
class overlay {
}
class util {
}
draw --> util
overlay --> draw
overlay --> util
visualize
실험 결과물 시각화를 위한 모듈입니다. 크게 draw, overlay 두 가지 하위 모듈로 구성되어 있습니다.
draw
get_draw
Function to force PIL.ImageDraw.Draw to RGBA mode
draw_ellipse
draw_ellipse(canvas: Image, origin: Tuple[int, int], radius: int, fill: Tuple[int, int, int] = (0, 0, 0), outline: Tuple[int, int, int] = None, width: int = None, opacity: float = 1.0) -> Image
Draw an ellipse in canvas.
Since the ImageDraw.ellipse() uses a bounding box using xy coordinates,
it is converted into origin and radius methods.
Parameters:
-
canvas(Image) –Image to draw ellipse.
-
origin(Tuple[int, int]) –Ellipse's origin.
-
radius(int) –Ellipse's radius.
-
fill(Tuple[int, int, int], default:(0, 0, 0)) –Tuple contain ellipse's RGB fill color. Defaults to (0, 0, 0) (black).
-
outline(Tuple[int, int, int], default:None) –Tuple contain ellipse's RGB outline color. Defaults to None (Transparent).
-
width(int, default:None) –Ellipse's outline width. Defaults to None.
-
opacity(float, default:1.0) –Ellipse's opacity value. Defaults to 1..
Returns:
-
Image–Image.Image:
canvaswith ellipse.
Source code in SaigeToolkit/visualize/draw.py
draw_polygon
draw_polygon(canvas: Image, xy: Sequence[Union[int, Tuple[int, int]]], fill: Optional[Tuple[int, int, int]] = None, outline: Optional[Tuple[int, int, int]] = None, width: int = 1, opacity: float = 1.0) -> Image
Draw an polygon in canvas.
Improved outline function because ImageDraw.polygon()
cannot draw polygon outline to connect with origin.
Parameters:
-
canvas(Image) –Image to draw polygon.
-
xy(Sequence[Union[int, Tuple[int, int]]]) –Sequence of
[(x, y), (x, y), ...]or numeric values like[x, y, x, y, ...]. -
fill(Optional[Tuple[int, int, int]], default:None) –Tuple contain polygon's RGB fill color. Defaults to None (Transparent).
-
outline(Optional[Tuple[int, int, int]], default:None) –Tuple contain polygon's RGB outline color. Defaults to None (Transparent).
-
width(int, default:1) –Polygon's outline width. Defaults to 1.
-
opacity(float, default:1.0) –Polygon's opacity value. Defaults to 1..
Returns:
-
Image–Image.Image:
canvaswith polygon.
Source code in SaigeToolkit/visualize/draw.py
draw_rectangle
draw_rectangle(canvas: Image, xy: Sequence[Union[int, Tuple[int, int]]], fill: Tuple[int, int, int] = (0, 0, 0), outline: Tuple[int, int, int] = None, width: int = 1, opacity: float = 1.0) -> Image
Draw an rectangle in canvas.
Parameters:
-
canvas(Image) –Image to draw rectangle.
-
xy(Sequence[Union[int, Tuple[int, int]]]) –Two points to define the bounding box. Sequence of either
[(x0, y0), (x1, y1)]or[x0, y0, x1, y1]. -
fill(Tuple[int, int, int], default:(0, 0, 0)) –Tuple contain rectangle's RGB fill color. Defaults to (0, 0, 0) (black).
-
outline(Tuple[int, int, int], default:None) –Tuple contain rectangle's RGB outline color. Defaults to None (Transparent).
-
width(int, default:1) –Rectangle's outline width. Defaults to 1.
-
opacity(float, default:1.0) –Rectangle's opacity value. Defaults to 1..
Returns:
-
Image–Image.Image:
canvaswith rectangle.
Source code in SaigeToolkit/visualize/draw.py
draw_text
draw_text(canvas: Image, xy: Tuple[int, int], text: str, font: ImageFont = None, font_size: Optional[int] = None, anchor: str = 'lt', fill: Tuple[int, int, int] = (255, 255, 255), outline: Tuple[int, int, int] = None, width: int = 0, opacity: float = 1.0) -> Image
Draw text in canvas.
Parameters:
-
canvas(Image) –Image to draw text.
-
xy(Tuple[int, int]) –Text's start point.
-
text(str) –Text to write on canvas.
-
font(ImageFont, default:None) –Determines the font of text. If None, the default font will be used. Defaults to None.
-
font_size(Optional[int], default:None) –[DEPRECATED] A parameter to be DISCARDED when
fontis not None. Determines the font size. Default to None. -
anchor(str, default:'lt') –Determines the alignment of text according to xy coordinates. The default value
ltdraws text with paramxyaligned to the upper left. Defaults to "lt". get more information: Text anchors -
fill(Tuple[int, int, int], default:(255, 255, 255)) –Tuple contain Text's RGB color. Defaults to (255, 255, 255) (White),
-
outline(Tuple[int, int, int], default:None) –Tuple contain text's RGB outline color. Defaults to None (Transparent).
-
width(int, default:0) –Text's outline width. Defaults to 0.
-
opacity(float, default:1.0) –Text's opacity value. Defaults to 1..
Returns:
-
Image–Image.Image:
canvaswith text.
Source code in SaigeToolkit/visualize/draw.py
overlay
overlay_solid_color
overlay_solid_color(image: Image, color: Tuple[int, int, int] = (0, 0, 0), opacity: float = 1.0) -> Image
Overlay solid color to image respect opacity.
Parameters:
-
image(Image) –Base image to be overlaid on.
-
color(Tuple[int, int, int], default:(0, 0, 0)) –Tuple contain solid color's RGB value. Defaults to (0, 0, 0) (black).
-
opacity(float, default:1.0) –Opacity value. Defaults to 1..
Returns:
-
Image–Image.Image: Overlaid image.
Source code in SaigeToolkit/visualize/overlay.py
overlay_binary_mask
overlay_binary_mask(image: Image, mask: Image, fill: Tuple[int, int, int] = (255, 0, 0), opacity: float = 1.0) -> Image
Overlay binary mask to image respect opacity.
Parameters:
-
image(Image) –Base image to be overlaid on.
-
mask(Image) –Binary mask equal to the size of the image (one channel). All element should be 0 or 1.
-
fill(Tuple[int, int, int], default:(255, 0, 0)) –Tuple contain solid color's RGB value. Defaults to (255, 0, 0) (red).
-
opacity(float, default:1.0) –Opacity value. Defaults to 1..
Returns:
-
Image–Image.Image: Mask overlaid image.
Source code in SaigeToolkit/visualize/overlay.py
util
add_opacity_to_color_tuple
add_opacity_to_color_tuple(color: Optional[Tuple[int, int, int]] = None, opacity: float = 1.0) -> Optional[Tuple[int, int, int, int]]
Convert RGB color tuple to RGBA with specific opacity.
Parameters:
-
color(Tuple[int, int, int], default:None) –Tuple of RGB color, each value has the range [0, 255]. Defaults to None.
-
opacity(float, default:1.0) –Opacity value. Expected range is [0., 1.]. Defaults to 1..
Returns:
-
Optional[Tuple[int, int, int, int]]–Tuple[int, int, int, int]: Converted RGBA color tuple.
Note
Since the PIL can handle outliers,
this function does not separately check for outliers for RGBA tuple.
It is correct not to consider the case where color is None,
(if it is None, should not to call this function),
but in this function, It is more efficient to assume that color is None
rather than handling all exceptions for None in the Visualize implementation.
(By keeping the color Tuple as None, PIL can handle it automatically.)
Source code in SaigeToolkit/visualize/util.py
blend_layers
Blend multiple layers into one layer respect alpha channel.
Parameters:
-
layers(List[Image]) –Layers to blend. First element will place to bottom, and last one to top. If layer's mode is not 'RGBA', it will convert to 'RGBA' with opacity 1.0.
Returns:
-
Image–Image.Image: Blended image.
Source code in SaigeToolkit/visualize/util.py
get_empty_layer
get_empty_layer(size: Tuple[int, int], color: Tuple[int, int, int] = (0, 0, 0), opacity: float = 0.0) -> Image
Create empty layer.
Parameters:
-
size(Tuple[int, int]) –(width, height) in pixels.
-
color(Tuple[int, int, int], default:(0, 0, 0)) –Layer's base color (Background). Defaults to (0, 0, 0) (black).
-
opacity(float, default:0.0) –Opacity value. Defaults to 0..
Returns:
-
Image–Image.Image: Empty layer.
Source code in SaigeToolkit/visualize/util.py
concatenate_images
concatenate_images(images: List[Image], mode: str = 'RGBA', orientation: str = 'horizontal') -> Image
Concatenates all images in a line.
Parameters:
-
images(List[Image]) –List of images to concatenate.
-
mode(str, default:'RGBA') –Result image's mode. Defaults to "RGBA".
-
orientation(str, default:'horizontal') –Determines the direction of concatenate. When
orientation == "horizontal", all images must have the same height and whenorientation == "vertical", all images must have the same width. Defaults to 'horizontal'.
Returns:
-
Image–Image.Image: Concatenated image.
Source code in SaigeToolkit/visualize/util.py
safety_visualize
Decorator for stable visualization.
Temporarily convert the canvas image mode to RGBA for visualize operation. After visualize is completed, converted back to the original image mode and returned.