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