Exemple #1
0
 def postprocess(self, y):
     if self.labeled_segments:
         y, coordinates = y
     else:
         coordinates = []
     if self.type == "auto":
         if isinstance(y, np.ndarray):
             dtype = "numpy"
         elif isinstance(y, PIL.Image.Image):
             dtype = "pil"
         elif isinstance(y, str):
             dtype = "file"
         elif isinstance(y, ModuleType):
             dtype = "plot"
         else:
             raise ValueError("Unknown type. Please choose from: 'numpy', 'pil', 'file', 'plot'.")
     else:
         dtype = self.type
     if dtype in ["numpy", "pil"]:
         if dtype == "pil":
             y = np.array(y)
         out_y = processing_utils.encode_array_to_base64(y)
     elif dtype == "file":
         out_y = processing_utils.encode_file_to_base64(y)
     elif dtype == "plot":
         out_y = processing_utils.encode_plot_to_base64(y)
     else:
         raise ValueError("Unknown type: " + dtype + ". Please choose from: 'numpy', 'pil', 'file', 'plot'.")
     return out_y, coordinates
Exemple #2
0
 def postprocess(self, y):
     """
     Parameters:
     y (Union[numpy.array, PIL.Image, str, matplotlib.pyplot, Tuple[Union[numpy.array, PIL.Image, str], List[Tuple[str, float, float, float, float]]]]): image in specified format 
     Returns:
     (str): base64 url data
     """
     if self.type == "auto":
         if isinstance(y, np.ndarray):
             dtype = "numpy"
         elif isinstance(y, PIL.Image.Image):
             dtype = "pil"
         elif isinstance(y, str):
             dtype = "file"
         elif isinstance(y, ModuleType):
             dtype = "plot"
         else:
             raise ValueError(
                 "Unknown type. Please choose from: 'numpy', 'pil', 'file', 'plot'."
             )
     else:
         dtype = self.type
     if dtype in ["numpy", "pil"]:
         if dtype == "pil":
             y = np.array(y)
         out_y = processing_utils.encode_array_to_base64(y)
     elif dtype == "file":
         out_y = processing_utils.encode_url_or_file_to_base64(y)
     elif dtype == "plot":
         out_y = processing_utils.encode_plot_to_base64(y)
     else:
         raise ValueError(
             "Unknown type: " + dtype +
             ". Please choose from: 'numpy', 'pil', 'file', 'plot'.")
     return out_y
Exemple #3
0
 def test_default_image(self):
     max_pixel_value = lambda img: img.max()
     img_interface = Interface(max_pixel_value, "image", "number", interpretation="default")
     array = np.zeros((100,100))
     array[0, 0] = 1
     img = encode_array_to_base64(array)        
     interpretation = img_interface.interpret([img])[0]        
     self.assertGreater(interpretation[0][0], 0)  # Checks to see if the top-left has >0 score.
Exemple #4
0
 def postprocess(self, y):
     if self.type in ["numpy", "pil"]:
         if self.type == "pil":
             y = np.array(y)
         return processing_utils.encode_array_to_base64(y)
     elif self.type == "file":
         return processing_utils.encode_file_to_base64(y)
     elif self.type == "plot":
         return processing_utils.encode_plot_to_base64(y)
     else:
         raise ValueError("Unknown type: " + self.type + ". Please choose from: 'numpy', 'pil', 'file', 'plot'.")
Exemple #5
0
 def get_interpretation_neighbors(self, x):
     x = processing_utils.decode_base64_to_image(x)
     if self.shape is not None:
         x = processing_utils.resize_and_crop(x, self.shape)
     image = np.array(x)
     segments_slic = slic(image, self.interpretation_segments, compactness=10, sigma=1)
     leave_one_out_tokens, masks = [], []
     replace_color = np.mean(image, axis=(0, 1))
     for (i, segVal) in enumerate(np.unique(segments_slic)):
         mask = segments_slic == segVal
         white_screen = np.copy(image)
         white_screen[segments_slic == segVal] = replace_color
         leave_one_out_tokens.append(
             processing_utils.encode_array_to_base64(white_screen))
         masks.append(mask)
     return leave_one_out_tokens, {"masks": masks}, True