数字图像处理 高斯模糊

高斯模糊(高斯平滑)通常用来减少图像噪声以及降低细节层次. 这种模糊技术生成的图像, 其视觉效果就像是经过一个半透明屏幕在观察图像, 这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同. 高斯平滑也用于计算机视觉算法中的预先处理阶段, 以增强图像在不同比例大小下的图像效果(参见尺度空间表示以及尺度空间实现). 从数学的角度来看, 图像的高斯模糊过程就是图像与正态分布做卷积. 由于正态分布又叫作高斯分布, 所以这项技术就叫作高斯模糊. 图像与圆形方框模糊做卷积将会生成更加精确的焦外成像效果. 由于高斯函数的傅立叶变换是另外一个高斯函数, 所以高斯模糊对于图像来说就是一个低通滤波器.

机理

高斯模糊是一种图像模糊滤波器, 它用正态分布计算图像中每个像素的变换. N维空间正态分布方程为
G ( r ) = 1 2 π σ 2 N e − r 2 2 σ 2 G(r)=\frac{1}{\sqrt {2πσ^2}^N}e^{\frac{-r^2}{2σ^2}} G(r)=2πσ2 N1e2σ2r2
在二维空间定义为
G ( r ) = 1 2 π σ 2 e − ( u 2 + v 2 ) 2 σ 2 G(r)=\frac{1}{2πσ^2}e^{\frac{-(u^2+v^2)}{2σ^2}} G(r)=2πσ21e2σ2(u2+v2)
其中 r 是模糊半径 r 2 = u 2 + v 2 r^2=u^2+v^2 r2=u2+v2, σ 是正态分布的标准偏差. 在二维空间中, 这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆. 分布不为零的像素组成的卷积矩阵与原始图像做变换. 每个像素的值都是周围相邻像素值的加权平均. 原始像素的值有最大的高斯分布值, 所以有最大的权重, 相邻像素随着距离原始像素越来越远, 其权重也越来越小. 这样进行模糊处理比其它的均衡模糊滤波器更高地保留了边缘效果.

import math
import numpy as np
import scipy.signal
import cv2

def get_cv(r, sigma):
    return 1 / (2 * math.pi * sigma ** 2) * math.exp((-r ** 2) / (2 * sigma ** 2))

def get_kernel():
    radius, sigma = 2, 1.5
    kernel = np.zeros((radius * 2 + 1, radius * 2 + 1))
    for i in range(-radius, radius + 1):
        for j in range(-radius, radius + 1):
            r = (i ** 2 + j ** 2) ** 0.5
            kernel[i + radius][j + radius] = get_cv(r, sigma)
    return kernel / np.sum(kernel)

def convert_2d(r):
    kernel = get_kernel()
    s = scipy.signal.convolve2d(r,kernel,mode='same',boundary='symm')
    return s.astype(np.uint8)

def convert_3d(r):
    s_dsplit = []
    for d in range(r.shape[2]):
        rr = r[:,:,d]
        ss = convert_2d(rr)
        s_dsplit.append(ss)
    s = np.dstack(s_dsplit)
    return s

im = cv2.imread('tetet.jpg')
im_convert_mat = convert_3d(im)
cv2.imshow('gaosi',im_convert_mat)
cv2.imwrite('gaosi.jpg',im_convert_mat)
cv2.waitKey()

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值