Opencv图像梯度处理
1. 模糊处理
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("orig", im)
im_median_blur = cv2.medianBlur(im, 5)
cv2.imshow('median_blur', im_median_blur)
im_mean_blur = cv2.blur(im, (3, 3))
cv2.imshow("mean_blur", im_mean_blur)
im_gaussian_blur = cv2.GaussianBlur(im, (5, 5), 3)
cv2.imshow("gaussian_blur", im_gaussian_blur)
gaussan_blur = np.array([
[1, 4, 7, 4, 1],
[4, 16, 26, 16, 4],
[7, 26, 41, 26, 7],
[4, 16, 26, 16, 4],
[1, 4, 7, 4, 1]], np.float32) / 273
im_gaussian_blur2 = cv2.filter2D(im, -1, gaussan_blur)
cv2.imshow("gaussian_blur2", im_gaussian_blur2)
cv2.waitKey()
cv2.destroyAllWindows()
- 执行结果:

2. 图像锐化处理
import cv2
import numpy as np
im = cv2.imread("../data/lena.jpg", 0)
cv2.imshow("orig", im)
sharpen_1 = np.array([[-1, -1, -1],
[-1, 9, -1],
[-1, -1, -1]])
im_sharpen1 = cv2.filter2D(im, -1, sharpen_1)
cv2.imshow("sharpen_1", im_sharpen1)
sharpen_2 = np.array([[0, -1, 0],
[-1, 8, -1],
[0, 1, 0]]) / 4.0
im_sharpen2 = cv2.filter2D(im, -1, sharpen_2)
cv2.imshow("sharpen_2", im_sharpen2)
cv2.waitKey()
cv2.destroyAllWindows()
- 执行结果:

3. 边沿检测
import cv2 as cv
im = cv.imread('../data/lily.png', 0)
cv.imshow('Original', im)
sobel = cv.Sobel(im, cv.CV_64F, 1, 1, ksize=5)
cv.imshow('Sobel', sobel)
laplacian = cv.Laplacian(im, cv.CV_64F)
cv.imshow('Laplacian', laplacian)
canny = cv.Canny(im,
50,
240)
cv.imshow('Canny', canny)
cv.waitKey()
cv.destroyAllWindows()
- 执行结果:
