图像预处理之opencv卷积/滤波api
程序员文章站
2022-07-15 22:38:17
...
目录
一、空间域处理
1.基于领域的卷积滤波变换
(1)、平滑均值滤波/卷积
破坏了图像的细节使图像变得模糊,同时不能很好的去除噪声
def blur_demo(image):
dst = cv.blur(image, (5, 5))
cv.imshow("blur_demo", dst)
(2)、平滑中值滤波/卷积
中值滤波对降噪能起到很好的作用,同时尽可能保留图像的细节
def median_blur_demo(image):
dst = cv.medianBlur(image, 5)
cv.imshow("median_blur_demo", dst)
(3)、自定义过滤器卷积
def custom_blur_demo(image):
#kernel = np.ones([5, 5], np.float32)/25
kernel = np.array([[0, -1, 0],[-1, 5, -1],[0, -1, 0]], np.float32)
dst = cv.filter2D(image, -1, kernel=kernel)
cv.imshow("custom_blur_demo", dst)
- (左)移位
- 锐化
(4)、平滑高斯滤波/卷积
- 模拟人眼(离关注中心越远,精度越模糊),关注中心区域。有效的去除高斯噪声
- 越小关注区域越集中
blur_1 = cv2.GaussianBlur(img,(5,5),0)#高斯滤波(5, 5)表示高斯矩阵的长与宽都是5,标准差取0
(5)、梯度Prewitt滤波/卷积
(6)、梯度Sobel滤波/卷积
sobelx = cv.Sobel(img,cv.CV_64F,1,0,ksize=5)#Sobel算子为边沿检测中常用的算子之一,Sobel 算子计算一阶、二阶、三阶或混合图像差分
sobely = cv.Sobel(img,cv.CV_64F,0,1,ksize=5)
(7)、梯度Laplacian滤波/卷积
- 团块检测:周边高于(低于)中心点
- 边缘检测:像素值快速变化的区域
laplacian = cv.Laplacian(img,cv.CV_64F)#对图像求二阶导数,一般用于边缘突出,在边缘检测中应用为Laplacian滤波
二、频率域处理
上一篇: 31.按奇偶排序数组
下一篇: 图像处理之仿画笔效果一