MATLAB图像处理之图像的均值滤波和中值滤波(附代码)

MATLAB图像处理之图像的均值滤波和中值滤波(附代码)图像的平滑 锐化都是利用掩模操作来完成的 通过掩模操作实现一种邻域运算 待处理像素点的结果由邻域的图像像素以及相应的与邻域有相同维数的子图像得到 这些子图像被称为滤波器 掩模 核 模板或窗口 掩模运算的数学含义是卷积 或互相关 运算 掩模子图像中的值是系数值 而不是灰度值

均值滤波

在这里插入图片描述
一般选取n*n的模板,便于运算,下面给出示例代码:

img = imread(''); [M , N] = size(img);%图片尺寸 img_result = zeros(M, N);%预生成,提高速度 muban_size = 3;%模板尺寸 expand_size = floor(muban_size / 2);%扩展尺寸 muban = 1 / (muban_size * muban_size) .* ones(muban_size, muban_size); expand_img = double(wextend('2D','zpd', img, expand_size));%扩展0,转double为了矩阵运算 for i=1:M for j=1:N ave = sum( sum( expand_img(i:i+muban_size-1,j:j+muban_size-1) .* muban)); %取出扩展元素与模板相乘,并求矩阵元素之和 img_result(i,j) = ave; end end img_result = uint8(img_result);%转int8,图像 subplot(1 ,2, 1); title('原图像') imshow(img) subplot(1 ,2, 2); imshow(img_result) da = ['模板大小为' num2str(muban_size) ',变化后的图像']; title(da) 

中值滤波

示例代码:

img = imread(''); [M , N] = size(img);%图片尺寸 img_result = zeros(M, N);%预生成,提高速度 muban_size = 3;%模板尺寸 expand_size = floor(muban_size / 2);%扩展尺寸 muban = ones(muban_size, muban_size); expand_img = double(wextend('2D','zpd', img, expand_size));%扩展0,转double为了矩阵运算 for i=1:M for j=1:N mat = expand_img(i:i+muban_size-1,j:j+muban_size-1) .* muban; %取出x1中从(i,j)开始的n行n列元素与模板相乘 mat = mat(:);%转数组 mat = sort(mat);%排序 if mod(muban_size, 2)==1 img_result(i,j) = mat(floor(muban_size*muban_size/2)+1);%取中间 else img_result(i,j) = (mat(muban_size*muban_size/2) + mat(muban_size*muban_size/2+1))/2; end end end img_result = uint8(img_result);%转int8,图像 subplot(1 ,2, 1); title('原图像') imshow(img) subplot(1 ,2, 2); imshow(img_result) da = ['模板大小为' num2str(muban_size) ',变化后的图像']; title(da) 

一些其他的中值滤波器:

模板
另:
中值滤波的窗口形状和尺寸对滤波效果影响较大,不同的图像内容和不同的应用要求,往往采用不同的窗口形状和尺寸。常用的二维中值滤波窗口有线状、方形、圆形、十字形以及圆环形等。
窗口尺寸一般先用3X3,再取5X 5逐渐增大,直到滤波效果满意为止。就经验来讲,对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜。对于包含有尖顶物体的图像,用十字形窗口,而窗口大小则以不超过图像中最小有效物体的尺寸为宜。如果图像中点、线、尖角细节较多,则不宜采用中值滤波




最后,点个赞?

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

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

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


相关推荐

  • flex java整合小试身手

    flex java整合小试身手flexmxml 代码如下 s Applicationx fx http ns adobe com mxml 2009 xmlns s library ns adobe com flex spark xmlns mx library ns adobe com flex mx width 657 height

    2026年3月26日
    2
  • MySQL配置文件[通俗易懂]

    MySQL配置文件[通俗易懂]在Windows系统中,MySQL的配置文件为my.ini,在Linux系统中,配置文件为my.cnf,一般存放路径为/etc/my.cnf或/etc/mysql/my.cnf。参考链接:https://segmentfault.com/a/1190000021408999?utm_source=tag-newestMySQL的默认设置性能非常差,仅仅起一个功能测试的作用,不能用在生产环境中,需要对一些参数进行调整优化。每次更改文件后,需要重启MySQL服务,使修改生效。在该配置文件中,可.

    2022年6月2日
    37
  • MySQL字符串截取函数_oracle截取字符串前几位

    MySQL字符串截取函数_oracle截取字符串前几位一、left()left():顾名思义就是从左边截取字符串。用法:left(str,length),即:left(被截取字符串,截取长度)SELECTleft(‘JingLiPoSuo’,2);结果为:Ji二、right()right():顾名思义就是从右边截取字符串。用法:right(str,length),即:right(被截取字符串,截取长度)SELECTright(‘JingLiPoSuo’,2);结果为:uo三、截取特定长度的字符串截取特定长度的字符串有两

    2026年4月15日
    5
  • arcgis进行插值分析——以空气质量的站点插值为例

    arcgis进行插值分析——以空气质量的站点插值为例一 环境 win10 arcgis10 2 二 注意问题 1 插值插值工具通常分为确定性方法和地统计方法 确定性插值方法将根据周围测量值和用于确定所生成表面平滑度的指定数学公式将值指定给位置 确定性插值方法包括 反距离权重法 inversedista IDW 自然邻域法 趋势面法和样条函数法 地统计方法以包含自相关 测量点之间的统计关系 的统计

    2025年8月22日
    5
  • Linux Redhat 7.6 操作系统 下载安装详解「建议收藏」

    Linux Redhat 7.6 操作系统 下载安装详解「建议收藏」redhat系统镜像分享[百度网盘分享]链接:https://pan.baidu.com/s/1U0SUh7qmLGfpLN5Fqb4Wgg提取码:bpwdredhat7.6版本安装详解

    2022年8月5日
    23
  • springboot项目启动遇到问题:AopAutoConfiguration matched: – @ConditionalOnProperty (spring.aop.auto=true)

    springboot项目启动遇到问题:AopAutoConfiguration matched: – @ConditionalOnProperty (spring.aop.auto=true)nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 今天写后台接口测试数据库的时候遇到了这个小问题 上网上查找也是没有解决我的问题 如下所示 Positivematc AopAutoConfi ConditionalO spri

    2026年3月18日
    2

发表回复

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

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