| | |
| | from .base import RectangleVisualizer, TextVisualizer |
| |
|
| |
|
| | class BoundingBoxVisualizer: |
| | def __init__(self): |
| | self.rectangle_visualizer = RectangleVisualizer() |
| |
|
| | def visualize(self, image_bgr, boxes_xywh): |
| | for bbox_xywh in boxes_xywh: |
| | image_bgr = self.rectangle_visualizer.visualize(image_bgr, bbox_xywh) |
| | return image_bgr |
| |
|
| |
|
| | class ScoredBoundingBoxVisualizer: |
| | def __init__(self, bbox_visualizer_params=None, score_visualizer_params=None, **kwargs): |
| | if bbox_visualizer_params is None: |
| | bbox_visualizer_params = {} |
| | if score_visualizer_params is None: |
| | score_visualizer_params = {} |
| | self.visualizer_bbox = RectangleVisualizer(**bbox_visualizer_params) |
| | self.visualizer_score = TextVisualizer(**score_visualizer_params) |
| |
|
| | def visualize(self, image_bgr, scored_bboxes): |
| | boxes_xywh, box_scores = scored_bboxes |
| | assert len(boxes_xywh) == len( |
| | box_scores |
| | ), "Number of bounding boxes {} should be equal to the number of scores {}".format( |
| | len(boxes_xywh), len(box_scores) |
| | ) |
| | for i, box_xywh in enumerate(boxes_xywh): |
| | score_i = box_scores[i] |
| | image_bgr = self.visualizer_bbox.visualize(image_bgr, box_xywh) |
| | score_txt = "{0:6.4f}".format(score_i) |
| | topleft_xy = box_xywh[0], box_xywh[1] |
| | image_bgr = self.visualizer_score.visualize(image_bgr, score_txt, topleft_xy) |
| | return image_bgr |
| |
|