| 20 | |
| 21 | |
| 22 | def segment_image(image, bbox): |
| 23 | image_array = np.array(image) |
| 24 | segmented_image_array = np.zeros_like(image_array) |
| 25 | x1, y1, x2, y2 = bbox |
| 26 | segmented_image_array[y1:y2, x1:x2] = image_array[y1:y2, x1:x2] |
| 27 | segmented_image = Image.fromarray(segmented_image_array) |
| 28 | black_image = Image.new("RGB", image.size, (255, 255, 255)) |
| 29 | # transparency_mask = np.zeros_like((), dtype=np.uint8) |
| 30 | transparency_mask = np.zeros( |
| 31 | (image_array.shape[0], image_array.shape[1]), dtype=np.uint8 |
| 32 | ) |
| 33 | transparency_mask[y1:y2, x1:x2] = 255 |
| 34 | transparency_mask_image = Image.fromarray(transparency_mask, mode="L") |
| 35 | black_image.paste(segmented_image, mask=transparency_mask_image) |
| 36 | return black_image |
| 37 | |
| 38 | |
| 39 | def format_results(result, filter=0): |