基于双边滤波的图像去噪研究及matlab实现
图像去噪是数字图像处理中的一个重要问题,其在许多应用领域中得到广泛的应用,如计算机视觉、医学影像、自然图像处理等。目前,常用的图像去噪方法有中值滤波、高斯滤波、小波变换去噪等。其中,双边滤波因为在去除噪声的同时保留了图像的边缘信息而受到了越来越多的关注。
双边滤波是一种结合了空间滤波和灰度相似性滤波的图像滤波方法。空间滤波是对图像中每个像素周围邻域内像素的加权平均数作为该像素的新值,以此达到去除噪声的效果;灰度相似性滤波则是对图像中每个像素与邻域像素之间的灰度差异进行加权,以此保留图像边缘信息。双边滤波的核心思想是,在像素的加权平均值中加入一个灰度相似性加权因子,使得在加权平均数计算过程中,更倾向于选择与当前像素灰度值相似的像素,从而达到保留边缘信息的效果。
在这里,我们将以matlab代码的形式来实现双边滤波的灰度和彩色图像去噪。
一、灰度图像去噪
以下是基于双边滤波的灰度图像去噪的matlab实现代码:
function [output_image] = bilateral_filter_gray(input_image, filter_size, sigma_d, sigma_r)
[row, col] = size(input_image);
padSize = floor(filter_size/2);
output_image=zeros(row, col);
w_g=ze