Spaces:
Running
on
T4
Running
on
T4
| import matplotlib.pyplot as plt | |
| from PIL import Image, ImageDraw | |
| class PlotHTR: | |
| def __init__(self, region_alpha = 0.3, line_alpha = 0.3): | |
| self.polygon_color = (238,18,137) | |
| self.region_alpha = region_alpha | |
| self.line_alpha = line_alpha | |
| def plot_regions(self, region_data, image): | |
| """Plots the detected text regions.""" | |
| img = image.copy() | |
| draw = ImageDraw.Draw(img) | |
| for region in region_data: | |
| img_h, img_w = region['img_shape'] | |
| region_polygon = list(map(tuple, region['region_coords'])) | |
| draw.polygon(region_polygon, fill = self.polygon_color, outline='black') | |
| # Lower alpha value is applied to filled polygons to make them transparent | |
| blended_img = Image.blend(image, img, self.region_alpha) | |
| return blended_img | |
| def plot_lines(self, region_data, image): | |
| """Plots the detected text lines.""" | |
| img = image.copy() | |
| draw = ImageDraw.Draw(img) | |
| for region in region_data: | |
| img_h, img_w = region['img_shape'] | |
| line_polygons = region['lines'] | |
| print(f'{len(line_polygons)} text lines') | |
| for i, polygon in enumerate(line_polygons): | |
| line_polygon = list(map(tuple, polygon)) | |
| draw.polygon(line_polygon, fill = self.polygon_color, outline='black') | |
| # Lower alpha value is applied to filled polygons to make them transparent | |
| blended_img = Image.blend(image, img, self.line_alpha) | |
| return blended_img |