滤波算法: 
这里所讲的算法都是针对图像空间的滤波算法,其中模板,可以理解为图像形态学中的结构元素,是用来选取图像中的那些像素点被用来操作的。空间滤波根据其功能划分为平滑滤波和锐化滤波。平滑滤波:能减弱或者消除图像中高频率分量,但不影响低频率分量,在实际应用中可用来消除噪声。锐化滤波:与平滑滤波相反,能减弱或者消除图像中低频率分量,但不影响高频率分量,可使图像反差增加,边缘明显。实际应用可用于增强被模糊的细节或者目标的边缘。

空间增强滤波技术分类:

1、线性平滑滤波

(1)方框滤波:用一个像素的领域像素值之和作为滤波结果,邻域即模板所覆盖的图像区域,此时模板的所有系数都为1.

(2)邻域平均:是特殊大方框滤波,用一个像素的领域平均像素值作为滤波结果,即a为第一种情。

其中N(x,y)为模板岁覆盖的图像的区域,n为模板的尺寸。

(3)加权平均:此时的模板系数不是1,而是具体的系数。一般认为距离模板中心的像素应对滤波结果有较大的贡献,所以可将接近模板中心的系数取得比模板周边的系数。

(4)高斯平均:是一种特殊的加权平均,只不过模板中的系数由高斯分布来确定的。

2、线性锐化滤波

(1)拉普拉斯算子 
拉普拉斯算子是一种各向同性的二阶微分算子,利用微分系数来确定模板系数,然后再与图像进行卷积运算,从而实现锐化滤波。

根据拉普拉斯定义: 
 
两个分别沿X和Y方向的二阶偏导均可借助差分计算: 
 
合并为:

当模板为4-邻域时 当模板为8-邻域时

以上两种模板的系数之和为0,这是为了使经过模板运算的图像的均值不变。拉普拉斯算子增强了图像中的灰度不连续区域,而减弱了图像中灰度值缓慢变化区域对比度,将这样的结果叠加到原始图像中,就可以得到锐化后的额图像。

(2)高频提升滤波 
图像的锐化效果可以通过叠加图像的微分结果得到,也可以通过减除图像积分结果得到。 
设原始图像为f(x,y),平滑后的图像为g(x,y):

非锐化掩模:h(x,y) = f(x,y)-g(x,y)

锐化图像:{ f(x,y)- g(x,y) } + f(x,y)

高频提升滤波:把图形乘以一个放大系数A,再减去平滑图像

可转化为: 
 
当A=1时,为非锐化掩模; 
当A=2时,为非锐化掩模化。

3、非线性平滑滤波

(1)中值滤波:对模板下对应的像素值进行升序排序,选取中间值作为结果。 
 
(2)与中值滤波类似的,还有最大值、最小值、中点滤波 
以上四种滤波也称之为百分比滤波,百分比滤波基于模板的排序来工作,又叫作序统计滤波。

参考:https://blog.csdn.net/swj110119/article/details/51321109

均值滤波及中值滤波的区别

均值滤波和和中值滤波都可以起到平滑图像,虑去噪声的功能。均值滤波采用线性的方法,平均整个窗口范围内的像素值,均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。均值滤波对高斯噪声表现较好,对椒盐噪声表现较差。中值滤波采用非线性的方法,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点来替代污染点的值,所以处理效果好,对椒盐噪声表现较好,对高斯噪声表现较差。

填充问题

在对图像应用滤波器进行过滤时,边界问题是一个需要处理的问题。一般来说,有3种处理的方法。

1. 不做边界处理
不对图像的边界作任何处理,在对图像进行滤波时,滤波器没有作用到图像的四周,因此图像的四周没有发生改变。

2. 填充0
对图像的边界做扩展,在扩展边界中填充0,对于边长为2k+1的方形滤波器,扩展的边界大小为k,若原来的图像为[m, n],则扩展后图像变为[m+2k, n+2k]。进行滤波之后,图像会出现一条黑色的边框。

3. 填充最近像素值
扩展与 填充0 的扩展类似,只不过填充0的扩展是在扩展部分填充0,而这个方法是填充距离最近的像素的值。

matlab代码实现

1.  均值滤波函数如下
该函数为spacelFilter,输入为需要进行滤波的图像(L = 256,像素值为0-255的灰度图像),方形滤波器(大小为2k+1,值类型为uint8),输出为经过滤波器滤波之后的图像。该函数滤波采用填充最近像素值的方法,结果图像不会出现黑边。

function [image_out] = spacelFilter(image_in, filter)
% (线性)均值滤波函数
% 输入为需要进行空间滤波的灰度图像,线性方形滤波器
% 输出为经过滤波之后的图像
% 图像边缘的填充为最近的像素值,目的是消除填充0时会出现的黑框
% 滤波器的大小为 n * n, n = 2 * k + 1, k为整数
% 输入图像大小为 m * n, 灰度图像,像素值范围为0-255,L = 256
[m, n] = size(image_in);
[mf, nf] = size(filter);
k = (mf - 1) / 2;
image2 = zeros(m+2*k, n+2*k, 'double');
image_out = zeros(m, n, 'uint8');
coeff = sum(filter(:));
% 填充部分
% 内部直接复制
for i = 1+k : m+k
    for j = 1+k : n+k
        image2(i, j) = image_in(i-k, j-k);
    end
end
% 填充上下边缘
for i = 1 : k
    for j = 1 : n
        image2(i, j+k) = image_in(1, j);
        image2(m+k+i, j+k) = image_in(m, j);
    end
end
% 填充左右边缘
for i = 1 : m
    for j = 1 : k
        image2(i+k, j) = image_in(i, 1);
        image2(i+k, n+k+j) = image_in(i, n);
    end
end
% 填充四个角
for i = 1 : k
    for j = 1 : k
        image2(i, j) = image_in(1, 1); %填充左上角
        image2(i, j+n+k) = image_in(1, n); %填充右上角
        image2(i+n+k, j) = image_in(m, 1); %填充左下角
        image2(i+n+k, j+n+k) = image_in(m, n); %填充右下角
    end
end
 
% 滤波部分
for i = 1+k : m+k
    for j = 1+k : n+k
        sub_image = image2(i-k:i+k, j-k:j+k);
        temp1 = double(filter') .* double(sub_image);
        temp2 = sum(temp1(:)) / coeff;
        image_out(i-k, j-k) = uint8(temp2);
    end
end
 
end
2. 中值滤波器
实现与均值滤波器类似,只不过在滤波部分的实现有所不同。
% 滤波部分
for i = 1+k : m+k
    for j = 1+k : n+k
        sub_image = image2(i-k:i+k, j-k:j+k);
        temp = median(sub_image(:));
        image_out(i-k, j-k) = uint8(temp);
    end
end
3.  测试代码如下
为了方便,我在spacelFilter函数中增加了中值滤波部分,增加了一个返回值,这样spacelFilter函数的返回值为[image1,image2],image1为均值滤波图像,image2为中值滤波图像。

close all;
clear all;
clc;
 
image = imread('2.tif');
[m, n] = size(image);
%模板大小
k = 3;
myFilter = zeros(k, k, 'uint8');
 
for i = 1 : k
    for j = 1 : k
        myFilter(i, j) = 1;
    end
end
[image2, image3] = spacelFilter(image, myFilter);
image4 = medfilt2(image, [3 3]);
figure;
subplot(2, 2, 1), imshow(image), title('原图像');
subplot(2, 2, 2), imshow(image2), title('3*3均值滤波图像');
subplot(2, 2, 3), imshow(image3), title('3*3中值滤波图像');
subplot(2, 2, 4), imshow(image4), title('matlab自带的中值滤波图像');
4. 代码运行结果如下(测试图像为被椒盐噪声污染的图像):

原文:https://blog.csdn.net/cjsh_123456/article/details/79261271

滤波算法、中值和均值滤波区别相关推荐

  1. matlab mean 滤波,中值和均值滤波---matlab实现(Median and mean filter ---matlab implementation).doc...

    中值和均值滤波---matlab实现(Median and mean filter ---matlab implementation) 中值和均值滤波---matlab实现(Median and me ...

  2. 均值滤波java_均值滤波,中值滤波,最大最小值滤波

    http://blog.csdn.net/fastbox/article/details/7984721 讨论如何使用卷积作为数学工具来处理图像,实现图像的滤波,其方法包含以下几种,均值 滤波,中值滤 ...

  3. 均值滤波,中值滤波,最大最小值滤波

    讨论如何使用卷积作为数学工具来处理图像,实现图像的滤波,其方法包含以下几种,均值 滤波,中值滤波,最大最小值滤波,关于什么是卷积以及理解卷积在图像处理中作用参见这 里–http://blog.csdn ...

  4. 均值滤波与中值滤波(python实现)

    使用Python实现窗口滑动功能,并对椒盐噪声进行去噪,比较两者去噪效果. 均值滤波: 中值滤波:中值滤波的实现原理是把数字图像中一点的值用该点的一个区域的各个点的值的中值代替. import cv2 ...

  5. 图像降噪算法——中值滤波/均值滤波/高斯滤波/双边滤波

    图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 图像降噪算法--中值滤波/均值滤波/高斯滤波/双边滤波 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--中值滤波/均值滤波/高 ...

  6. 滤波算法——均值滤波,中值滤波,一阶(αβ)滤波,卡尔曼滤波

    滤波算法--均值滤波,中值滤波,一阶(αβ)滤波,卡尔曼滤波 因工作涉及到数据滤波(滤噪)处理,汇总了一些网上简单的滤波算法,方便日后查看. 滤波算法包括:均值滤波,中值滤波,一阶(αβ)滤波,卡尔曼 ...

  7. 均值滤波及中值滤波的区别

    参考 https://blog.csdn.net/cjsh_123456/article/details/79261271 进行个人附加修改 均值滤波和和中值滤波都可以起到平滑图像,滤去噪声的功能.均 ...

  8. 《OpenCv视觉之眼》Python图像处理五 :Opencv图像去噪处理之均值滤波、方框滤波、中值滤波和高斯滤波

    本专栏主要介绍如果通过OpenCv-Python进行图像处理,通过原理理解OpenCv-Python的函数处理原型,在具体情况中,针对不同的图像进行不同等级的.不同方法的处理,以达到对图像进行去噪.锐 ...

  9. Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波

    作者 | 杨秀璋,责编 | 夕颜 题图  | 视觉中国 出品 | CSDN博客 本篇文章主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波.方框滤波.高斯滤波和中值滤波.全文均是 ...

最新文章

  1. tomcat安装及使用详解
  2. 微型计算机怎么插耳机,让听音更轻松一些,朗琴E10真无线耳机
  3. java return用法_Java枚举的高级用法之多键值的映射使用
  4. Mac 技术篇-Oracle数据库官方连接工具SQL Developer的安装与连接演示
  5. 今日头条技术架构到底有多牛?
  6. 【渝粤题库】广东开放大学 大学英语B 形成性考核 (2)
  7. JAVA基础进阶day01
  8. Web浏览器已经限制此文件显示
  9. ppt文件太大怎么压缩变小?
  10. 质量功能展开QFD成功案例解析
  11. opencv-python实际演练(二)军棋自动裁判(5)棋子文字的自动识别
  12. 计算机配置很不错但是卡,高手告诉你win10电脑明明配置很好却卡顿的详尽处理手法...
  13. 一文读懂Apache Kylin
  14. rono在oracle的作用_oracle中prior关键字的作用
  15. 信号频域分析的一点理解
  16. 微信的缓存如何清除,微信缓存css
  17. 程序设计之B - 东东学打牌(C++
  18. Ubiq:A Scalable and Fault-tolerant Log Processing Infrastructure
  19. NodeJs——(16)用Nodejs 4.X版本,制作一个微博网站(多图,详细步骤)(已完成)
  20. AttributeError: type object ‘Image‘ has no attribute ‘fromarray‘

热门文章

  1. 一次性消费品商城小程序开发,生活更便捷
  2. 开源新作!三个月啃透888页Java王者级核心宝典,大厂面试必备技能
  3. win10系统对计算机要求,使用win10系统,你需要掌握的5个技巧
  4. python设置word背景色_Java 给Word不同页面设置不同背景
  5. HP笔记本功能键(f1-f12)与fn键的使用
  6. 皮卡丘(pikachu)敏感信息泄露
  7. 全面屏虚拟键适配方案
  8. 微信小程序开发中的这些坑你遇到过吗?
  9. OpenCV C++开发 第一节:Win7开发环境搭建
  10. excel更改页眉页脚_如何在Excel的页眉和页脚中键入“&”号