数字图像处理实验(一)(邻域平均法滤波、中值滤波等)

本文记录了数字图像处理实验中的邻域平均法和中值滤波法去除图像噪声。介绍了这两种方法的原理,并提供了MATLAB实现代码,通过计算SNR和PSNR评估滤波效果。
摘要由CSDN通过智能技术生成

数字图像处理实验(一)(邻域平均法、中值滤波等)

内容摘要

最近,做数字图像处理实验,简单记录一下几个挺有意思的图像处理方法。本篇主要介绍领域平均法和中值滤波法去除图像噪声,求图像SNR和PSNR及其matlab实现代码。

邻域平均法

简单来说,就是对于每一个像素点都取它周围一圈的平均值,来降低一些像素值突变的点(即噪声点)的影响。当然,一个明显的结果就是,图片会一定程度上变模糊,于是有人提出“超限领域平均法”,即如果某个像素的灰度值大于其邻域像素的平均值,且达到一定水平,则判断该像素为噪声,继而用邻域像素的均值取代这一像素值。
代码实现如下,使用方法参见主程序注释。

% 邻域均值法去燥
function Img_average_filter=Average_filter(varargin) 
narginchk(1,3);         
Img_in = varargin{
   1};
Temp = [1 1 1;1 1 1;1 1 1]; % 默认模板
Threshold = 0;              % 默认阈值
if nargin == 2
    Temp = varargin{
   2};
elseif nargin == 3
    Temp = varargin{
   2};
    Threshold = varargin{
   3};
end
[n, m] = size(Img_in);
Img_raw = int32(Img_in);
[L1, L2] = size(Temp);
LL=sum(sum(Temp));
Img_average_filter = int32(zeros(n-L1+1, m-L2+1));  % 舍弃边缘信息
for i = (L1+1)/2:n-(L1-1)/2
    for j = (L2+1)/2:m-(L2-1)/2
        Img_raw_sub = Img_raw(i-(L1-1)/2:i+(L1-1)/2, j-(L2-1)/2:j+(L2-1)/2);
        SUM = sum(sum(Img_raw_sub.*int32(Temp)));
        ave = SUM/LL;
        if Threshold ~= 0
            if abs(Img_raw(i,j)-ave) > Threshold
                Img_average_filter(i-(L1-1)/2, j-(L2-
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值