Exemplo n.º 1
0
def process(image, name_algorithm: str, args):
    """
    @day: 11-03-2020
    @author: Tien Nguyen
    @parameters:
        - image(image object).
        - name_algorithm (string): The name of alogorithm apply on the image.
        - *arg: some optional arguments.
    @return value:
        - An image object applied the alogithms/operation
    """
    if not name_algorithm in VALID_ALGORITHMS:
        print("The name algorithm is not valid !")
        exit(2)

    if name_algorithm == 'Convolution2D':
        output = Algorithm.Convolution2D(image)
    if name_algorithm == 'Bluring':
        size_bluring = int(args.size_bluring)
        output = Algorithm.Bluring(image=image, size=size_bluring)
    if name_algorithm == 'Sharpening':
        kernel_sharpen = str(args.kernel_sharpen)
        output = Algorithm.Sharpening(image=image, selected_kernel_sharpen=kernel_sharpen)
    if name_algorithm == 'Color_space_convert':
        src_cs = args.src_cs
        dst_cs = args.dst_cs
        output = Algorithm.Color_space_convert(image=image, src_cs = src_cs, dst_cs = dst_cs)
    if name_algorithm == 'Translation':
        dx = int(args.dx)
        dy = int(args.dy)
        output = Algorithm.Translation(img=image,dx=dx,dy=dy)
    if name_algorithm == 'Rotation':
        angle = int(args.angle)
        output = Algorithm.Rotation(img=image,angle=angle)
    if name_algorithm == 'Scale':
        fx = float(args.fx)
        fy = float(args.fy)
        output = Algorithm.Scaling(img=image,fx=fx,fy=fy)
    if name_algorithm == 'Vertical_wave':
        dx = int(args.dx)
        output = Algorithm.Vertical_wave(img=image,dx=dx)
    if name_algorithm == 'Horizontal_wave':
        dy = int(args.dy)
        output = Algorithm.Horizontal_wave(img=image,dy=dy)
    if name_algorithm == 'Double_wave':
        dx = int(args.dx)
        dy = int(args.dy)
        output = Algorithm.Double_wave(img=image,dx=dx,dy=dy)
    if name_algorithm == 'Concave_effect':
        output = Algorithm.Concave_effect(img=image)
    if name_algorithm == 'GaussianBlur':
        kernel_size = int(args.kernel_size_gauss)
        devitation = int(args.devitation)
        output = Algorithm.Gaussian_blur(img=image,kernel_size=kernel_size,devitation=devitation)
    if name_algorithm == 'BilateralBlur':
        diameter = int(args.diameter)
        sigma_color = int(args.sigma_color)
        sigma_space = int(args.sigma_space)
        output = Algorithm.Bilateral_blur(img=image,diameter=diameter,sigma_color=sigma_color,sigma_space=sigma_space)


    return output