Python skimage.filters 模块,threshold_adaptive() 实例源码

我们从Python开源项目中,提取了以下8个代码示例,用于说明如何使用skimage.filters.threshold_adaptive()

项目:sudokuextract    作者:hbldh    | 项目源码 | 文件源码
def to_binary_adaptive(img):

    sigma = 1.0
    m = max(img.shape)
    if m > 2000:
        block_size = 80
    elif m > 1500:
        block_size = 50
    elif m > 1000:
        block_size = 35
    else:
        block_size = 20

    bimg = gaussian_filter(img, sigma=sigma)
    bimg = threshold_adaptive(bimg, block_size, offset=2 / 255)
    bimg = np.array(bimg, 'uint8') * 255
    return bimg
项目:char_segmentation    作者:CoinLQ    | 项目源码 | 文件源码
def binarisation(src_image):
    if len(src_image.shape) == 3:
        image = (src_image.sum(axis=2) / 3).astype('ubyte')
    else:
        image = src_image
    thresh = threshold_otsu(image)
    binary = (image > thresh).astype('ubyte')
    binary1 = 1 - binary
    im = 255 - np.multiply(255 - image, binary1)
    block_size = 35
    binary = threshold_adaptive(image, block_size, offset=20)
    binary = binary.astype('ubyte')
    return binary
项目:char_segmentation    作者:CoinLQ    | 项目源码 | 文件源码
def binarisation(src_image):
    if len(src_image.shape) == 3:
        image = (src_image.sum(axis=2) / 3).astype('ubyte')
    else:
        image = src_image
    thresh = threshold_otsu(image)
    binary = (image > thresh).astype('ubyte')
    binary1 = 1 - binary
    im = 255 - np.multiply(255 - image, binary1)
    block_size = 35
    binary = threshold_adaptive(image, block_size, offset=20)
    binary = binary.astype('ubyte')
    return binary

# 100
项目:char_segmentation    作者:CoinLQ    | 项目源码 | 文件源码
def binarisation(src_image):
    if len(src_image.shape) == 3:
        image = (src_image.sum(axis=2) / 3).astype('ubyte')
    else:
        image = src_image
    thresh = threshold_otsu(image)
    binary = (image > thresh).astype('ubyte')
    binary1 = 1 - binary
    im = 255 - np.multiply(255 - image, binary1)
    block_size = 35
    binary = threshold_adaptive(im, block_size, offset=20)
    binary = binary.astype('ubyte')
    return binary
项目:char_segmentation    作者:CoinLQ    | 项目源码 | 文件源码
def binarisation1(src_image):
    if len(src_image.shape) == 3:
        image = (src_image.sum(axis=2) / 3).astype('ubyte')
    else:
        image = src_image
    block_size = 35
    binary = threshold_adaptive(image, block_size, offset=20)
    binary = binary.astype('ubyte')
    return binary
项目:card-scanner    作者:RFVenter    | 项目源码 | 文件源码
def cropped_image(image, contours, bw=True, show=False):
    ratio = image.shape[0] / float(scale_factor)
    warped = four_point_transform(image, contours.reshape(4, 2) * ratio)
    if bw:
        # convert the warped image to grayscale, then threshold it to give it that 'black and white' paper effect
        warped = cv2.cvtColor(warped, cv2.COLOR_BGR2GRAY)
        warped = threshold_adaptive(warped, 251, offset = 10)
        warped = warped.astype("uint8") * 255

    if show: #this is for debugging puposes
        cv2.imshow("Payload", warped)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
    return warped
项目:card-scanner    作者:RFVenter    | 项目源码 | 文件源码
def cropped_image(image, contours, bw=True, show=False):
    ratio = image.shape[0] / float(scale_factor)
    warped = four_point_transform(image, contours.reshape(4, 2) * ratio)
    if bw:
        # convert the warped image to grayscale, then threshold it to give it that 'black and white' paper effect
        warped = cv2.cvtColor(warped, cv2.COLOR_BGR2GRAY)
        warped = threshold_adaptive(warped, 251, offset = 10)
        warped = warped.astype("uint8") * 255

    if show: #this is for debugging puposes
        cv2.imshow("Payload", warped)
        cv2.waitKey(0)
        cv2.destroyAllWindows()
    return warped
项目:sudokuextract    作者:hbldh    | 项目源码 | 文件源码
def iter_blob_extremes(image, n=5):
    original_shape = image.shape[::-1]
    if max(original_shape) < 2000:
        size = (500, 500)
        y_scale = original_shape[0] / 500
        x_scale = original_shape[1] / 500
    else:
        size = (1000, 1000)
        y_scale = original_shape[0] / 1000
        x_scale = original_shape[1] / 1000

    img = resize(image, size)
    bimg = gaussian_filter(img, sigma=1.0)
    bimg = threshold_adaptive(bimg, 20, offset=2/255)
    bimg = -bimg
    bimg = ndi.binary_fill_holes(bimg)
    label_image = label(bimg, background=False)
    label_image += 1

    regions = regionprops(label_image)
    regions.sort(key=attrgetter('area'), reverse=True)
    iter_n = 0

    for region in regions:
        try:
            iter_n += 1
            if iter_n > n:
                break

            # Skip small images
            if region.area < int(np.prod(size) * 0.05):
                continue
            coords = get_contours(add_border(label_image == region.label,
                                             size=label_image.shape,
                                             border_size=1,
                                             background_value=False))[0]
            coords = np.fliplr(coords)

            top_left = sorted(coords, key=lambda x: np.linalg.norm(np.array(x)))[0]
            top_right = sorted(coords, key=lambda x: np.linalg.norm(np.array(x) - [img.shape[1], 0]))[0]
            bottom_left = sorted(coords, key=lambda x: np.linalg.norm(np.array(x) - [0, img.shape[0]]))[0]
            bottom_right = sorted(coords, key=lambda x: np.linalg.norm(np.array(x) - [img.shape[1], img.shape[0]]))[0]
            scaled_extremes = [(int(x[0] * y_scale), int(x[1]*x_scale)) for x in (top_left, top_right, bottom_left, bottom_right)]

            yield scaled_extremes
        except Exception:
            pass
    raise SudokuExtractError("No suitable blob could be found.")