| from init import Init_Planes |
| from util import Run_Utils |
| import numpy as np |
| import cv2 |
| import os |
| import base64 |
| from PIL import Image |
| import io |
|
|
|
|
| class Start_Program: |
| def __init__(self, depth_image, base_image): |
| self.depth_image = depth_image |
| self.base_image = base_image |
|
|
| def convert_img_base64(self, image): |
| img_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) |
| img_pil = Image.fromarray(img_rgb) |
|
|
| buffer = io.BytesIO() |
| img_pil.save(buffer, format="PNG") |
| image_bytes = buffer.getvalue() |
| base64_img_string = base64.b64encode(image_bytes).decode() |
| return base64_img_string |
|
|
| def run(self): |
| planes, normals = Init_Planes( |
| self.base_image, self.depth_image |
| ).initiate_split() |
|
|
| segment_images = [] |
|
|
| for plane in planes: |
| image_str = self.convert_img_base64(plane) |
| segment_images.append(image_str) |
|
|
| for normal in normals: |
| image_str = self.convert_img_base64(normal) |
| segment_images.append(image_str) |
|
|
| base_str = self.convert_img_base64(self.base_image) |
| segment_images.append(base_str) |
|
|
| return segment_images |