| import cv2 |
| import numpy as np |
|
|
|
|
| def process_bubble(image): |
| """ |
| Processes the speech bubble in the given image, making its contents white. |
| |
| Parameters: |
| - image (numpy.ndarray): Input image. |
| |
| Returns: |
| - image (numpy.ndarray): Image with the speech bubble content set to white. |
| - largest_contour (numpy.ndarray): Contour of the detected speech bubble. |
| """ |
| gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) |
| _, thresh = cv2.threshold(gray, 240, 255, cv2.THRESH_BINARY) |
|
|
| contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) |
| largest_contour = max(contours, key=cv2.contourArea) |
|
|
| mask = np.zeros_like(gray) |
| cv2.drawContours(mask, [largest_contour], -1, 255, cv2.FILLED) |
|
|
| image[mask == 255] = (255, 255, 255) |
|
|
| return image, largest_contour |
|
|