TextEraser / src /utils.py
lxzcpro's picture
First Implement
144afae
import numpy as np
import cv2
def visualize_mask(image, mask, alpha=0.5):
"""
Overlay mask on image for visualization.
Automatically resizes mask to match image dimensions.
"""
image = np.array(image)
mask = np.array(mask)
h, w = image.shape[:2]
mh, mw = mask.shape[:2]
if (h, w) != (mh, mw):
mask = cv2.resize(mask, (w, h), interpolation=cv2.INTER_NEAREST)
overlay = image.copy()
overlay[mask > 0] = [255, 0, 0]
return cv2.addWeighted(image, 1-alpha, overlay, alpha, 0)
def combine_masks(masks):
"""Combine multiple masks into one"""
if not masks:
return None
combined = np.zeros_like(masks[0])
for mask in masks:
combined = np.logical_or(combined, mask).astype(np.uint8)
return combined
def resize_image(image, max_size=1024):
"""Resize image while maintaining aspect ratio"""
h, w = image.shape[:2]
if max(h, w) > max_size:
scale = max_size / max(h, w)
new_w = int(w * scale)
new_h = int(h * scale)
return cv2.resize(image, (new_w, new_h), interpolation=cv2.INTER_AREA)
return image