MATLAB图像处理之图像的均值滤波和中值滤波(附代码)
图像的平滑、锐化都是利用掩模操作来完成的。通过掩模操作实现一种邻域运算,待处理像素点的结果由邻域的图像像素以及相应的与邻域有相同维数的子图像得到。这些子图像被称为滤波器、掩模、核、模板或窗口;
掩模运算的数学含义是卷积(或互相关)运算;
掩模子图像中的值是系数值,而不是灰度值;
卷积示例图:
一般来说,在MN的图像f(x,y)上,用mn大小的滤波器掩模进行线性滤波由下式给出:
模板为1*5的中值滤波和均值滤波的对比:
均值滤波
简单来说就是对某个区域内的像素值取平均值代替原像素值
常用的3*3的滤波器掩模为:
一幅M×N的图像经过m×n的加权均值滤波器滤波的过程可由下式给出:
一般选取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:Mfor j=1:Nave = sum( sum( expand_img(i:i+muban_size-1,j:j+muban_size-1) .* muban)); %取出扩展元素与模板相乘,并求矩阵元素之和img_result(i,j) = ave;end
endimg_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:Mfor j=1:Nmat = 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)==1img_result(i,j) = mat(floor(muban_size*muban_size/2)+1);%取中间elseimg_result(i,j) = (mat(muban_size*muban_size/2) + mat(muban_size*muban_size/2+1))/2;endend
endimg_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逐渐增大,直到滤波效果满意为止。就经验来讲,对于有缓变的较长轮廓线物体的图像,采用方形或圆形窗口为宜。对于包含有尖顶物体的图像,用十字形窗口,而窗口大小则以不超过图像中最小有效物体的尺寸为宜。如果图像中点、线、尖角细节较多,则不宜采用中值滤波
最后,点个赞?
MATLAB图像处理之图像的均值滤波和中值滤波(附代码)相关推荐
- 【数字图像处理】图像直方图均衡化、空域滤波(均值滤波、中值滤波)、图像锐化(Laplace算子)、图像傅里叶变换实验
图像直方图均衡化.空域滤波.图像锐化.图像傅里叶变换 一.图像直方图均衡化 二.图像空域滤波 1.均值滤波(滤波次数n→3) 2.中值滤波(滤波次数n→3) 3.图像锐化(Laplace算子) 三.图 ...
- 【图像处理】——图像滤波(Python+opencv实现三种方法:均值滤波、中值滤波、高斯滤波等)
目录 一.什么是滤波以及滤波的目的? 二.均值滤波(cv2.blur()) 1.原理 2.关键代码 3.封装代码 二.中值滤波(cv2.medianBlur()) 1.原理 2.关键代码 3.封装代码 ...
- Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
作者 | 杨秀璋,责编 | 夕颜 题图 | 视觉中国 出品 | CSDN博客 本篇文章主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波.方框滤波.高斯滤波和中值滤波.全文均是 ...
- [Python图像处理] 四十一.Python图像平滑万字详解(均值滤波、方框滤波、高斯滤波、中值滤波、双边滤波)
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- [Python图像处理] 四.图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- 【图像处理】 均值滤波、中值滤波和高斯滤波
[图像处理] 均值滤波.中值滤波和高斯滤波 均值滤波 中值滤波 高斯滤波 结语 均值滤波 均值滤波是一种线性滤波,会导致图像模糊. 均值滤波器卷积核:卷积核中心点对应原图上的位置的值,变为卷积核覆盖的 ...
- 图像的均值滤波、中值滤波_JAVA
转载自 http://blog.csdn.net/luoweifu/article/details/8150196 概述 噪声对图像处理的影响很大,它影响图像处理的输入.采集和处理等各个环节以及输出 ...
- 第七周作业:matlab分别对图片加入高斯噪音和椒盐噪音,然而利用均值滤波和中值滤波分别对上述两种噪音进行去噪。
文章目录 题目 原图 1.添加椒盐噪声 2.添加高斯噪声 3.均值滤波处理椒盐噪声 4.中值滤波处理椒盐噪声 5.均值滤波处理高斯噪声 6.中值滤波处理高斯噪声 题目 利用MATLAB编程,制作一张照 ...
- 关于平滑滤波,中值滤波,KNN滤波的图像处理(附matlab代码)
前些天小编上了数字图像的课程,里面提到了均值平滑滤波操作,中值滤波操作,和KNN平滑滤波操作. 1.何为均值平滑滤波呢? 均值滤波的核心就是在一定的小范围内,给这个小范围的像素取平均值(此操作是在原图 ...
- 《OpenCv视觉之眼》Python图像处理五 :Opencv图像去噪处理之均值滤波、方框滤波、中值滤波和高斯滤波
本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...
最新文章
- 了解CSS/CSS3原生变量var (转)
- 2021MIT博士pluskid年终总结
- js给php注册网页添加实时监听,js 实现watch监听数据变化的代码
- 项目质量管理知识点整理和习题整理
- 通过 pxe(网络安装)完成centos 系统的网络安装
- 项目总结——机房收费系统合作版
- oracle display set,Check if the DISPLAY variable is set
- vfork()系统调用
- mysql 递归查询所有父级
- Android手机打开开发者模式调试App
- Ubuntu系统安装企业微信和微信
- 渗透测试试题-----web方面知识点
- 《绮梦朦胧,一眼浮生醉流年》
- 【ChatGPT】实用 Prompt 指令大全 —— 一文教你如何更好地挖掘 GPT 的价值
- [转]JFFS2源代码情景分析Beta2
- C# unix时间戳 秒、毫秒、微秒。日期 字符串 格式
- jQuery(一)jQuery的认识和使用
- 深度学习数据集(一)
- 什么叫单稳态,双稳态
- 小猪o2o源码v14.17双系统版(生活通+营销系统)怎么配置微信支付和支付宝支付
热门文章
- 为什么需要 Cache Line Size 对齐?
- Chisel教程——08.Chisel参数化生成器(从Scala讲起)
- 基于php民宿管理系统,基于php的某民宿在线管理平台的设计与实现-软件工程专业论文.docx...
- vue-json-editor json编辑器
- 哪里可以下载大量短视频?高质量短视频批量下载
- 解决spring boot shiro的 Consider defining a bean named ‘shiroFilterFactoryBean‘ in your configuration问题
- 微软Windows Ink 使用介绍
- 政务服务一体化平台的电子证照需要时间戳服务吗?
- 面试杀手锏:SpringBoot是如何实现简化配置的?
- 转载 基于bayer型阵列的空间域插值