import sys import cv2 import numpy as np from matplotlib import pyplot as plt img = cv2.imread('couleur.png',0) def Everything (img): laplacian = cv2.Laplacian(img,cv2.CV_64F) sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) plt.subplot(2,2,1),plt.imshow(img,cmap = 'gray') plt.title('Original'), plt.xticks([]), plt.yticks([]) plt.subplot(2,2,2),plt.imshow(laplacian,cmap = 'gray') plt.title('Laplacian'), plt.xticks([]), plt.yticks([]) plt.subplot(2,2,3),plt.imshow(sobelx,cmap = 'gray') plt.title('Sobel X'), plt.xticks([]), plt.yticks([]) plt.subplot(2,2,4),plt.imshow(sobely,cmap = 'gray') plt.title('Sobel Y'), plt.xticks([]), plt.yticks([]) plt.show() return laplacian def Laplacian(img): laplacian = cv2.Laplacian(img,cv2.CV_64F) plt.plot,plt.imshow(laplacian,cmap = 'gray') plt.title('Laplacian'), plt.xticks([]), plt.yticks([]) plt.show() return laplacian def SobelX(img): sobelx = cv2.Sobel(img,cv2.CV_64F,1,0,ksize=5) plt.plot,plt.imshow(sobelx,cmap = 'gray') plt.title('Sobel X'), plt.xticks([]), plt.yticks([]) plt.show() return sobelx def SobelY(img): sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) plt.plot,plt.imshow(sobely,cmap = 'gray') plt.title('Sobel Y'), plt.xticks([]), plt.yticks([]) plt.show() return sobely def GradientChoiceProcessing(img, choice): if choice == '1': img = Laplacian(img) return img elif choice == '2': img = SobelX(img) return img elif choice == '3': img = SobelY(img) return img elif choice == '4': img = Everything(img) return img else: return def GradientChoice() : image = None print('\t\tGradient Menu\n') while (image is None): if sys.version_info >= (3, 0): image = str(input('\tImage to use ? By default couleur.png \n')) else: image = str(raw_input('\tImage to use ? By default couleur.png \n')) if not image: image = 'couleur.png' image = cv2.imread(str(image), 0) print ('\t1. Laplacian\n\t2. Sobel X\n\t3. Sobel Y\n\t4. Everything\n') if sys.version_info >= (3, 0): choice = input('\n\tMultiple choices possible\n') else: choice = raw_input('\n\tMultiple choices possible\n') for i in range (0, len(choice)): img = image.copy() img = GradientChoiceProcessing(img, choice[i]) return