opencv-python learning (fifteen): image gradient

1. Sobel operator

def sobel_image(image):
    grad_x = cv.Sobel(image, cv.CV_32F, 1, 0) # x方向导数
    grad_y = cv.Sobel(image, cv.CV_32F, 0, 1) # y方向导数
    gradx = cv.convertScaleAbs(grad_x)
    grady = cv.convertScaleAbs(grad_y)
    cv.imshow("xDireaction", gradx)
    cv.imshow("yDireaction", grady)
    gradxy = cv.addWeighted(gradx, 0.5, grady, 0.5, 0)
    cv.imshow("compose", gradxy)

src = cv.imread("./static/image/blur.jpg")
cv.imshow("image", src)
sobel_image(src)
cv.waitKey(0)
cv.destroyAllWindows()

running result:
insert image description here

2, schaar operator: enhance the edge

def scharr_image(image):
    grad_x = cv.Scharr(image, cv.CV_32F, 1, 0) # x方向导数
    grad_y = cv.Scharr(image, cv.CV_32F, 0, 1) # y方向导数
    gradx = cv.convertScaleAbs(grad_x)
    grady = cv.convertScaleAbs(grad_y)
    cv.imshow('XDireaction', gradx)
    cv.imshow('YDireaction', grady)
    gradxy = cv.addWeighted(gradx, 0.5 ,grady, 0.5, 0)
    cv.imshow('compose', gradxy)

src = cv.imread("./static/image/blur.jpg")
cv.imshow("image", src)
scharr_image(src)
cv.waitKey(0)
cv.destroyAllWindows()

The effect is as follows:
insert image description here

3. Laplacian operator

def lapalian_image(image):
    dst = cv.Laplacian(image, cv.CV_32F)
    lpls = cv.convertScaleAbs(dst)
    cv.imshow('lapalian', lpls)

src = cv.imread("./static/image/blur.jpg")
cv.imshow("image", src)
lapalian_image(src)
cv.waitKey(0)
cv.destroyAllWindows()

running result:insert image description here

Guess you like

Origin blog.csdn.net/weixin_33538887/article/details/119114087