示例#1
0
def upload_content(list_image_string, list_filenames, click, downsample,
                   n_rows, n_cols):

    downsample = int(downsample)
    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
        ]
        if downsample > 1:
            ratio = 1.0 / downsample
            multichannel = image_list[0].ndim > 2
            image_list = [
                transform.rescale(image,
                                  ratio,
                                  multichannel=multichannel,
                                  preserve_range=True).astype(np.uint8)
                for image in image_list
            ]
        res = tile_images(image_list, n_rows, n_cols)
        return array_to_data_url(res)
    elif click:
        res = demo_data()
        tmp = array_to_data_url(res)
        return tmp

    raise PreventUpdate
def remove_background(json_data, image):
    if json_data:
        # ➊ imageが値をもつ場合、それを基に画像のnumpy.ndarrayに変換する
        if image:
            image_array = image_string_to_PILImage(image)
            image_array = np.asarray(image_array)
        # imageが値をもたない場合、imreadで画像を読み込む
        else:
            image_array = io.imread(image_path)
        # ➋ 画像のアレイのサイズを変数shapeに代入する
        shape = image_array.shape[:2]

        # ➌ 書き込みのJSONデータをパースし、ブール値に変換する
        try:
            mask = parse_jsonstring(json_data, shape=shape)
        except IndexError:
            raise PreventUpdate

        if mask.sum() > 0:  # ➍
            seg = superpixel_color_segmentation(image_array, mask)
        else:
            seg = np.ones(shape)
        filled_image = np.copy(image_array)
        filled_image[np.logical_not(seg)] = np.array([255, 255, 255],
                                                     dtype="uint8")  # ➎
        return array_to_data_url(filled_image)  # ➏

    else:
        PreventUpdate
示例#3
0
def modify_result(contrast, brightness, image_string):
    if image_string is None:
        raise PreventUpdate
    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)
示例#4
0
def update_figure_upload(string, image, algorithm):
    print("update figure")
    if string:
        if image is None:
            im = img
            image = img
        else:
            im = image_string_to_PILImage(image)
            im = np.asarray(im)
        shape = im.shape[:2]
        mask = parse_jsonstring(string, shape=shape)
        if mask.sum() > 0:
            seg = segmentation_generic(im, mask, mode=algorithm)
        else:
            seg = np.zeros(shape)
        return image_with_contour(im, seg, shape=shape)
    else:
        raise PreventUpdate
示例#5
0
    def update_figure_upload(string, image, height, width, birdeye,
                             calculation):

        if string:
            if image is None:
                im = img_app3
            else:
                im = image_string_to_PILImage(image)
                im = np.asarray(im)

            dat, locsgrid, locs, gray, output_image = solve_sudoku(
                im,
                beyeview=birdeye,
                digit_h=(height[0], height[1]),
                digit_w=(width[0], width[1]))
            if calculation:
                dat = compute(locsgrid, locs, gray, output_image)
            return array_to_data_url(dat)
        else:
            raise PreventUpdate
示例#6
0
def update_figure_upload(string, image):
    if string:
        if image is None:
            im = img_app3
        else:
            im = image_string_to_PILImage(image)
            im = np.asarray(im)
        shape = im.shape[:2]
        try:
            mask = parse_jsonstring(string, shape=shape)
        except IndexError:
            raise PreventUpdate
        if mask.sum() > 0:
            seg = superpixel_color_segmentation(im, mask)
        else:
            seg = np.ones(shape)
        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)
    else:
        raise PreventUpdate
示例#7
0
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)