def update_canvas_upload_shape(image_string, w, h): if image_string is None: raise PreventUpdate if image_string is not None: im = image_string_to_PILImage(image_string) im_h, im_w = im.height, im.width return round(w / im_w * im_h) else: return canvas_height
def update_canvas_upload_scale(image_string): if image_string is None: raise PreventUpdate if image_string is not None: # very dirty hack, this should be made more robust using regexp im = image_string_to_PILImage(image_string) im_h, im_w = im.height, im.width return canvas_width / im_w else: return scale
def update_canvas_upload_shape(image_string, w, h): if image_string is None: raise ValueError if image_string is not None: # very dirty hack, this should be made more robust using regexp im = image_string_to_PILImage(image_string) im_h, im_w = im.height, im.width return round(w / im_w * im_h) else: return canvas_height
def update_figure_upload(image, string, h, s, w, algorithm): mask = parse_jsonstring(string, shape=(round(h/s), round(w/s))) if mask.sum() > 0: if image is None: im = img image = img else: im = image_string_to_PILImage(image) im = np.asarray(im) seg = segmentation_generic(im, mask, mode=algorithm) else: if image is None: image = img seg = np.zeros((h, w)) return image_with_contour(image, seg, shape=(round(h/s), round(w/s)))
def upload_content(list_image_string, list_filenames, click, n_rows, n_cols): if list_image_string is not None: order = np.argsort(list_filenames) image_list = [np.asarray(image_string_to_PILImage( list_image_string[i])) for i in order] res = tile_images(image_list, n_rows, n_cols) return array_to_data_url(res) elif click: import os filelist = glob('./assets/tile*.jpg') filelist.sort() image_list = [io.imread(filename) for filename in filelist[:4]] res = tile_images(image_list, n_rows, n_cols) return array_to_data_url(res) else: raise PreventUpdate
def update_figure_upload(image, string, h, s, w): mask = parse_jsonstring(string, shape=(round(h / s), round(w / s))) if mask.sum() > 0: if image is None: im = img image = img else: im = image_string_to_PILImage(image) im = np.asarray(im) seg = superpixel_color_segmentation(im, mask) else: if image is None: image = img seg = np.ones((h, w)) fill_value = 255 * np.ones(3, dtype=np.uint8) dat = np.copy(im) dat[np.logical_not(seg)] = fill_value return array_to_data_url(dat)
def untile_images(image_string, n_rows, n_cols): big_im = np.asarray(image_string_to_PILImage(image_string)) tiles = [np.split(im, n_cols, axis=1) for im in np.split(big_im, n_rows)] return np.array(tiles)
def modify_result(contrast, brightness, image_string): print('in modify result') img = np.asarray(image_string_to_PILImage(image_string)) img = contrast_adjust(img, contrast) img = brightness_adjust(img, brightness) return array_to_data_url(img)