OpenCV:线性滤波(方框滤波、均值滤波、高斯滤波)、非线性滤波(中值滤波、双边滤波)

OpenCV:线性滤波(方框滤波、均值滤波、高斯滤波)、非线性滤波(中值滤波、双边滤波)

import cv2

'''线性滤波'''
def box(img, k):
    img_P_0 = cv2.boxFilter(img, -1, k, normalize=0)
    img_P_1 = cv2.boxFilter(img, -1, k, normalize=1)

    '''cv2.boxFilter(src, depth, ksize, normalize)
    src:输入图像
    depth:图片深度(设置-1为默认深度,不自行设定)
    ksize:卷积核大小(默认3*3),越大越模糊,也可当去噪用
    normalize:0为False,1为True。0:卷积核内像素求和,1:求平均值
    '''
    cv2.imshow('方框滤波0', img_P_0)
    cv2.imshow('方框滤波1', img_P_1)

def mean(img, k):
    img_M = cv2.blur(img, k)
    '''cv2.blur(scr, ksize)
    src:输入图像
    ksize:卷积核大小(默认3*3),一般为奇数
    '''
    cv2.imshow('均值滤波', img_M)       #相当于方框滤波 normalize参数为1

def gauss(img, k, a):
    img_G = cv2.GaussianBlur(img, k, a)
    '''cv2.GaussianBlur(src, ksize, sigma)
    src:输入图像
    ksize:高斯核大小(默认3*3),一般为奇数
    sigma:高斯权重,值越大,远处像素对中心点的影响越大
    '''
    cv2.imshow('高斯滤波', img_G)

'''非线性滤波'''
def median(img, k):
    img_M = cv2.medianBlur(img, k)
    '''cv2.medianBlur(src, ksize, dst)
    src:输入图像
    ksize:核大小,方阵,输1位
    '''
    cv2.imshow('中值滤波', img_M)

def bilateral(img, d, c, s):
    img_B = cv2.bilateralFilter(img, d, c, s)        #保留图像边缘进行去噪
    '''cv2.bilateralFilter(src, d, sigmaColor, sigmaSpace)
    src:输入图像
    d:像素邻域直径(-1即可)
    sigmaColor:灰度值相似性高斯函数标准差
    sigmaSpace:空间高斯函数标准差
    '''
    cv2.imshow('双边滤波', img_B)


img_0 = cv2.imread('识别(原).png', cv2.IMREAD_UNCHANGED)
img_1 = cv2.imread('识别(椒盐).png', cv2.IMREAD_UNCHANGED)
img_0 = cv2.resize(img_0, (450,400))
img_1 = cv2.resize(img_1, (450,400))


cv2.imshow('原图', img_0)
cv2.imshow('椒盐噪声图', img_1)

box(img_1, (6, 2))
mean(img_1, (5, 5))
gauss(img_1, (3, 3), 1)
median(img_1, 3)
bilateral(img_1, -1, 20, 15)

cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

https://www.bilibili.com/video/BV1Vt4y147Pp/?spm_id_from=333.788&vd_source=b89ce2a9b55dab86caa0ee60b66c9f86

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值