|
|
| 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
|
|
|