均值滤波、中值滤波【MATLAB】【图像处理】

均值滤波、中值滤波【MATLAB】【图像处理】不放过每一个学习的机会 关注微信公众号 AI 算法爱好者或扫描二维码 1 均值滤波 即线性滤波 有 a 邻域平均 b 加权平均两种 a 邻域平均 用一个像素邻域平均值作为滤波结果 此时滤波器模板的所系数都取 1 为保证输出图仍在原来的灰度值范围 在算得 R 后要将其除以系数总个数再进行赋值 对 3 3 的模板来说 在算得 R 后要将其除以系数 9 b 加权平均 对同一尺寸的模

1. 均值滤波:即线性滤波,有:  a.邻域平均, b. 加权平均两种。

a. 邻域平均:用一个像素邻域平均值作为滤波结果,此时滤波器模板的所系数都取1,为保证输出图仍在原来的灰度值范围,在算得R后要将其除以系数总个数再进行赋值,对3*3的模板来说,在算得R后要将其除以系数9。

b. 加权平均:对同一尺寸的模板,可对不同位置的系数采用不同的数值,一般认为离对应模板中心像素近的像素应对滤波结果又较大贡献,所以接近模板中心的系数可比较大而模板边界附近的系数应比较小。

以3*3模板为例:

f = imread('F:\matlab_ex\imageProcessing\wx.jpg'); n = 3; template = ones(n); [height, width] = size(f); x1 = double(f); x2 = x1; for i = 1:height-n+1 for j = 1:width-n+1 c = x1(i:i+n-1,j:j+n-1).*template; s = sum(sum(c)); x2(i+(n-1)/2,j+(n-1)/2) = s/(n*n); end end g = uint8(x2); imshow(g);

f = imread('F:\matlab_ex\imageProcessing\wx.jpg'); [height, width] = size(f); x1 = double(f); x2 = x1; for i = 1:height-n+1 for j = 1:width-n+1 c = x1(i:i+n-1,j:j+n-1); e = c(1,:); for k = 2:n e = [e, c(k, :)]; end tmp = median(e); x2(i+(n-1)/2,j+(n-1)/2) = tmp; end end g = uint8(x2); imshow(g);

3. 使用自带函数滤波

try %实验步骤一:彩色、灰度变换 h=imread('F:\matlab_ex\imageProcessing\wx.jpg'); %读入彩色图片 c=rgb2gray(h); %把彩色图片转化成灰度图片,256级 figure,imshow(c),title('原始图象'); %显示原始图象 g=imnoise(c,'gaussian',0.1,0.002); %加入高斯噪声 figure,imshow(g),title('加入高斯噪声之后的图象'); %显示加入高斯噪声之后的图象 %实验步骤二:用系统预定义滤波器进行均值滤波 n=input('请输入均值滤波器模板大小\n'); A=fspecial('average',n); %生成系统预定义的3X3滤波器 Y=filter2(A,g)/255; %用生成的滤波器进行滤波,并归一化 figure,imshow(Y),title('用系统函数进行均值滤波后的结果'); %显示滤波后的图象 %实验步骤三:用Matlab系统函数进行中值滤波 n2=input('请输入中值滤波的模板的大小\n'); Y3=medfilt2(g,[n2 n2]); %调用系统函数进行中值滤波,n2为模板大小 figure,imshow(Y3),title('用Matlab系统函数进行中值滤波之后的结果'); %显示滤波后的图象 %实验步骤四:用matlab系统函数进行高斯滤波 n3=input('请输入高斯滤波器的均值\n'); k=input('请输入高斯滤波器的方差\n'); A2=fspecial('gaussian',k,n3); %生成高斯序列 Y5=filter2(A2,g)/255; %用生成的高斯序列进行滤波 figure,imshow(Y5),title('用Matlab函数进行高斯滤波之后的结果'); %显示滤波后的图象 catch %捕获异常 disp(lasterr); %如果程序有异常,输出 end 


以上

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209691.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:38
下一篇 2026年3月19日 上午8:38


相关推荐

  • 介绍一种非常好用汇总数据的方式GROUPING SETS

    介绍一种非常好用汇总数据的方式GROUPING SETS

    2021年11月26日
    57
  • 安装vim管理插件 pathogen

    安装vim管理插件 pathogen1 下载 nbsp nbsp pathogen 并安装 nbsp pathogen 的下载地址为 https github com tpope vim pathogen 在 下面创建 vim nbsp 然后在 vim 下面创建 bundle nbsp autoload cd nbsp mkdir nbsp vim nbsp mkdir vim bundle nbsp mkdir vim autoload

    2026年3月20日
    3
  • 【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)

    【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)作者 lianghc 连接 http blog csdn net zutsoft article details merge nbsp 通过键拼接列 pandas 提供了一个类似于关系数据库的连接 join 操作的方法 merage 可以根据一个或多个键将不同 DataFrame 中的行连接起来语法如下 merge left right how inner on No

    2026年3月16日
    2
  • platform device和driver之间的关系

    platform device和driver之间的关系[c-sharp] viewplaincopy内核中的platform driver机制需要将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过platform device提供的标准接口进行申请并使用。这样可以提高驱动和资源管理的独立性。本文的目的就是希望弄清楚platform device和driver之间的关系。  1.1

    2022年7月24日
    10
  • arcpy使用

    arcpy使用写在前面地理处理框架与 arcpyarcgis 地理处理包括了查找工具 工具箱 地理处理环境 模型 python 脚本 arcpy 等一系列自动执行地理任务的框架 arcpy 是 esri 针对 arcgis 系列产品做的一个 python 站点包 它像胶水一样黏贴了多个与 arcgis 应用程序相关的 arcobjects 函数对象 我们甚至可以从帮助里找到 toolbox 每个工具箱的代码原型 arcpy 涉及

    2026年3月20日
    2
  • 国内外AI大模型汇总合集-文本类

    国内外AI大模型汇总合集-文本类

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号