Download src/gradio_interface.py from nnibras/LAB4: direct link, hf CLI and curl.
- Browser
- Download file 1.55 kB
-
https://huggingface.co/spaces/nnibras/LAB4/resolve/main/src/gradio_interface.py
- Command line
-
hf download hf://spaces/nnibras/LAB4/src/gradio_interface.py
-
curl -L -o gradio_interface.py https://huggingface.co/spaces/nnibras/LAB4/resolve/main/src/gradio_interface.py
1.55 kB
| from src.segmentation import segment_person | |
| from src.stereoscopic_insert import insert_person | |
| from src.anaglyph_converter import create_anaglyph | |
| from src.trial_insert import insert_person_V2 | |
| import cv2 | |
| from PIL import Image | |
| def generate_anaglyph( | |
| person_image_path, left_image_path, right_image_path, depth="medium" | |
| ): | |
| """ | |
| Generate an anaglyph 3D image by segmenting a person from an uploaded image, | |
| inserting the segmented person into a stereoscopic pair, and converting the result | |
| to an anaglyph format. | |
| Parameters: | |
| - person_image_path: file path to the uploaded person image. | |
| - left_image_path: file path to the uploaded left stereoscopic image. | |
| - right_image_path: file path to the uploaded right stereoscopic image. | |
| - depth: depth level for the person in the 3D scene ("close", "medium", or "far"). | |
| Returns: | |
| - Anaglyph PIL image ready for display. | |
| """ | |
| # Segment the person from the uploaded image | |
| person_image = segment_person(person_image_path) | |
| # Save the segmented image temporarily for overlay purposes | |
| person_image.save("temp_person.png") | |
| # Insert the segmented person into the stereoscopic images | |
| left_image, right_image = insert_person_V2( | |
| left_image_path, right_image_path, "temp_person.png", depth | |
| ) | |
| # Create the final anaglyph image from the left and right images | |
| anaglyph_image = create_anaglyph(left_image, right_image) | |
| anaglyph_pil = Image.fromarray(cv2.cvtColor(anaglyph_image, cv2.COLOR_BGR2RGB)) | |
| return anaglyph_pil | |