import cv2
import numpy as np
from matplotlib import pyplot as plt
def gradients_image():
        img = cv2.imread('butterfly_g.bmp',0)
        img = cv2.GaussianBlur(img,(3,3), 0)
        
        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(GaussianBlur)'), 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()
if __name__ == "__main__" :
        gradients_image()
