transform.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:Imagyn 作者: zevisert 项目源码 文件源码
def seam_carve(img):
    """
    Seam carve image
    :param img: PIL image object
    :return: PIL image object
    """
    # Convert to skimage image
    img_to_convert = img.copy()
    img_to_convert = pil_to_skimage(img_to_convert)

    # Energy Map, used to determine which pixels will be removed
    eimg = filters.sobel(color.rgb2gray(img_to_convert))

    # (height, width)
    img_dimensions = img_to_convert.shape

    # Squish width if width >= height, squish height if height > width
    # Number of pixels to keep along the outer edges (5% of largest dimension)
    # Number of seams to be removed, (1 to 10% of largest dimension)
    if img_dimensions[1] >= img_dimensions[0]:
        mode = "horizontal"
        border = round(img_dimensions[1] * 0.05)
        num_seams = random.randint(1, round(0.1*img_dimensions[1]))

    else:
        mode = "vertical" 
        border = round(img_dimensions[0] * 0.05)
        num_seams = random.randint(1, round(0.1*img_dimensions[0]))

    try:
        img_to_convert = transform.seam_carve(img_to_convert, eimg, mode, num_seams, border)

    except Exception as e:
        print("Unable to seam_carve: " + str(e))

    # Convert back to PIL image
    img_to_convert = skimage_to_pil(img_to_convert)

    return img_to_convert
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号