使用 cv2 完成卷积运算(图像的特征处理)
1 获取核函数
-
获取高斯核
# 获取高斯核 kernel = cv2.getGaussianKernel(ksize=3, sigma=5) -
获取 Gabor 核
# 获取Gabor核 kernel = cv2.getGaborKernel(ksize=ksize, sigma=sigma, theta=theta, lambd=lambd, gamma=gamma)
2 直接调用函数对图像进行特征处理
-
高斯模糊处理
使用离散的二维正态分布矩阵对图像进行卷积处理。
# 高斯模糊处理 # 使用离散的二维正态分布矩阵对图像进行卷积处理 frame = cv2.GaussianBlur(frame, ksize=(11, 11), sigmaX=10) -
拉普拉斯处理
使用卷积处理,求图像的二阶偏导和。
# 拉普拉斯处理 # 使用卷积处理,求图像的二阶偏导和 frame = cv2.Laplacian(frame, -1, frame, ksize=5, delta=70) -
Sobel 图像处理
结合了高斯处理,使用卷积处理对图像求导。求对图像的 x dx 阶导, y dy 阶导。
# Sobel 图像处理 # 结合了高斯处理,使用卷积处理对图像求导。求对图像的 x dx 阶导, y dy 阶导 frame = cv2.Sobel(frame, ddepth=-1, dx=0, dy=2, ksize=5, delta=70) -
blur 图像模糊处理
使用“均匀的且和为 1 ”矩阵对图像进行模糊处理。
# blur 图像模糊处理 # 使用“均匀的且和为 1 ”矩阵对图像进行模糊处理 frame = cv2.blur(src=frame, ksize=(11, 11)) -
boxFilter 图像滤波处理
使用“均匀的且和为 1”矩阵(normalized=True),或者使用“全为 1 ”的矩阵(normalized=False)对图像进行模糊处理。
# boxFilter 图像滤波处理 # 使用“均匀的且和为 1”矩阵(normalized=True),或者使用“全为 1 ”的矩阵(normalized=False)对图像进行模糊处理 frame = cv2.boxFilter(frame, ddepth=-1, ksize=(2, 2), normalize=False) -
dilate 图像扩大处理
根据矩阵对图像进行扩大处理。
# dilate 图像扩大处理 # 根据矩阵对图像进行扩大处理 frame = cv2.dilate(frame, kernel) -
bilateralFilter 图像去噪处理
使用 bilateral 核对图形进行过滤处理,与相邻且颜色相近的像素颜色混合。可以达到降噪效果。
# dilate 图像扩大处理 # 使用 bilateral 核对图形进行过滤处理,与相邻且颜色相近的像素颜色混合。可以达到降噪效果 frame = cv2.bilateralFilter(frame, d=10, sigmaColor=17, sigmaSpace=5) -
medianBlur 图像模糊处理
使用 median 核(filter)对图形进行模糊处理。
# medianBlur 图像模糊处理 # 使用 median 核(filter)对图形进行模糊处理 frame = cv2.medianBlur(frame, ksize=13)