opencv 线性滤波之高斯滤波

本文介绍了高斯滤波在去除高斯噪声中的作用,解释了卷积核、锚点、步长和内积的概念,并指出高斯模糊与高斯滤波的区别。通过OpenCV的GaussianBlur函数示例,展示了如何在实际应用中调整参数进行图像模糊或清晰处理。
摘要由CSDN通过智能技术生成

高斯滤波对去除高斯噪声有很好的效果。高斯滤波是通过对输入数组的每个点与输入的高斯滤波模版执行卷积计算后,将这些结果一块组成滤波后的输出数组。

卷积核:用来对图像矩阵进行平滑的矩阵,高斯卷积核是一个近似服从高斯分布的矩阵,随着距离中心点的距离的增加,其值变小。这样进行平滑处理的时候,图像矩阵中锚点处像素值权重大,边缘像素值权重小。

锚点:卷积核和图像矩阵重叠,进行内积计算后,锚点位置的像素点会被计算值取代。一般选取奇数卷积核的中心点作为锚点,

步长:卷积核每次移动的长度,

内积:卷积核和图像矩阵对应像素点相乘,然后相加得到一个总和。

高斯模糊和高斯滤波的区别:区别的依据是低通滤波器还是高通滤波器。比如低通滤波器,像素能量低的通过,像素能量高的将会采取加权平均的方法重新计算像素的值,将像素的值变成能量较低的值。对于图像而言,高频部分展示细节,所以经过低通滤波后会造成图像的模糊,这种称为高斯模糊。相反高斯滤波是允许高频通过而过滤掉低频使图像变得清晰,对于服从正态分布的噪声非常有效。

在opencv中函数GaussianBlur可以实现高斯滤波,声明如下:

cv.GaussianBlur(src,ksize,sigmaX[,dst[,sigmaY[,borderType]]])

其中,src表示输入图像,dst表示输出图像,ksize表示内核大小,sigmaX和sigmaY表示核函数在x和y方向上的标准偏差,borderType表示边界模式,一般选默认即可

下面是一个例子:

import cv2 as cv
import numpy as np
import math
import copy
from matplotlib import pyplot as plt
KSIZE=1.0
SIGMA=15
window_name="demo"

def GaussianBlursize(GaussianBlur_size):
    global KSIZE
    KSIZE=round(GaussianBlur_size*2+3)
    print(KSIZE,SIGMA)
    dst=cv.GaussianBlur(scr, (KSIZE,KSIZE), SIGMA, KSIZE)
    cv.imshow(window_name,dst)

def GaussianBlurSigma(GaussianBlur_sigma):
    global SIGMA
    KSIZE=round(GaussianBlur_sigma/10.0)
    print(KSIZE,SIGMA)
    dst=cv.GaussianBlur(scr, (KSIZE,KSIZE), SIGMA, KSIZE)
    cv.imshow(window_name,dst)

GaussianBlur_size=1
GaussianBlur_sigma=15
max_value=300
max_type=6
trackbar_size="Size*2+3"
trackbar_sigma="Sigma/10"

scr=cv.imread("C:/Users/wangyiyuan/Desktop/20200201172603_hocyy.jpg",0)
cv.namedWindow(window_name)
cv.createTrackbar(trackbar_size,window_name,GaussianBlur_size,max_type,GaussianBlursize)
cv.createTrackbar(trackbar_sigma,window_name,GaussianBlur_sigma,max_value,GaussianBlurSigma)
GaussianBlursize(1)
GaussianBlurSigma(15)
if cv.waitKey(0)==1000:
    cv.destroyAllWindows()












scr=cv.imread("C:/Users/wangyiyuan/Desktop/20200201172603_hocyy.jpg")

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值