matlab自带滤波器函数小结(图像处理)  

1 线性平滑滤波器

用MATLAB实现领域平均法抑制噪声程序:

I=imread(' c4.jpg ');

subplot(231)

imshow(I)

title('原始图像')

flag = isrgb(I);

if flag==true

   I=rgb2gray(I);

else

    I=I;

end

I1=imnoise(I,'salt & pepper',0.02);

subplot(232)

imshow(I1)

title(' 添加椒盐噪声的图像')

k1=filter2(fspecial('average',3),I1)/255;          %进行3*3模板平滑滤波

k2=filter2(fspecial('average',5),I1)/255;          %进行5*5模板平滑滤波



k3=filter2(fspecial('average',7),I1)/255;          %进行7*7模板平滑滤波

k4=filter2(fspecial('average',9),I1)/255;          %进行9*9模板平滑滤波

subplot(233),imshow(k1);title('3*3 模板平滑滤波');

subplot(234),imshow(k2);title('5*5 模板平滑滤波');

subplot(235),imshow(k3);title('7*7 模板平滑滤波');

subplot(236),imshow(k4);title('9*9 模板平滑滤波');



2 中值滤波器

用MATLAB实现中值滤波程序如下:

I=imread(' c4.jpg ');

flag = isrgb(I);

if flag==true

   I=rgb2gray(I);

else

    I=I;

end

J=imnoise(I,'salt&pepper',0.02);

subplot(231),imshow(I);title('原图像');

subplot(232),imshow(J);title('添加椒盐噪声图像');

k1=medfilt2(J);            %进行3*3模板中值滤波

k2=medfilt2(J,[5,5]);      %进行5*5模板中值滤波

k3=medfilt2(J,[7,7]);      %进行7*7模板中值滤波

k4=medfilt2(J,[9,9]);      %进行9*9模板中值滤波

subplot(233),imshow(k1);title('3*3模板中值滤波');

subplot(234),imshow(k2);title('5*5模板中值滤波 ');

subplot(235),imshow(k3);title('7*7模板中值滤波');

subplot(236),imshow(k4);title('9*9 模板中值滤波');



3 状态统计滤波器:ordfilt2函数

Y=ordfilt2(X,order,domain)

由domain中非0元素指定邻域的排序集中的第order个元素代替X中的每个元素。Domain是一个仅包括0和1的矩阵,1仅定义滤波运算的邻域。

Y=ordfilt2(X,order,domain,S)

S与domain一样大,用与domain的非0值相应的S的值作为附加补偿。



4 二维自适应除噪滤波器:wiener2函数

wiener2函数估计每个像素的局部均值与方差,该函数用法如下:

J=wiener2(I,[M N],noise)

使用M×N大小邻域局部图像均值与偏差,采用像素式自适应滤波器对图像I进行滤波。

[J,noise]=wiener2(I,[M N])

滤波前还有估计附加噪声的能量。



5 特定区域滤波

MATLAB图像处理工具箱中提供的roifilt2函数用于对特定区域进行滤波,其语法格式为:

J=roifilt2(h,I,BW)

其功能是:使用滤波器h对图像I中用二值掩模BW选中的区域滤波。

J=roifilt2(I,BW,fun)

J=roifilt2(I,BW,fun,P1,P2,…)

其功能是:对图像I中用二值掩模BW选中的区域作函数运算fun,其中fun是描述函数运算的字符串,参数为P1、P2、…。返回图像J在选中区域的像素为图像I经fun运算的结果,其余部分的像素值为I的原始值。

例:对指定区域进行锐化滤波的程序清单:

I=imread('eight.tif');

c=[222 272 300 272 222 194];

r=[21 21 75 121 121 75];

BW=roipoly(I,c,r);

h=fspecial('unsharp');

J=roifilt2(h,I,BW);

subplot(1,2,1);imshow(I);

subplot(1,2,2);imshow(J);

matlab中滤波函数的更多相关文章

  1. MATLAB中的函数句柄及其应用

    1.函数句柄的创建 函数句柄(function handle)是MATLAB中的一类特殊的数据结构,它的地位类似于其它计算机语言里的函数对象(Javascript,Python),函数指针(C++), ...

  2. Matlab中imfilter()函数的用法

    Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波.用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,... ...

  3. matlab中patch函数的用法

    http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...

  4. matlab中subplot函数的功能

    转载自http://wenku.baidu.com/link?url=UkbSbQd3cxpT7sFrDw7_BO8zJDCUvPKrmsrbITk-7n7fP8g0Vhvq3QTC0DrwwrXfa ...

  5. 【原创】Matlab中plot函数全功能解析

    [原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...

  6. matlab 中max函数用法

    Matlab中max函数在矩阵中求函数大小的实例如下:(1)C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的 ...

  7. Matlab中plot函数全功能解析

    Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y)plot(X1,Y1,...)plot(X1,Y1,LineSpec,...)plot(...,'PropertyName ...

  8. matlab中cumsum函数

    matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 格式一:B = cumsum(A ...

  9. 『转载』Matlab中fmincon函数获取乘子

    Matlab中fmincon函数获取乘子 一.输出结构 [x,fval,exitflag,output,lambda] = fmincon(......) 二.结构说明 lambda结构 说     ...

随机推荐

  1. 决策树&随机森林

    参考链接: https://www.bilibili.com/video/av26086646/?p=8 <统计学习方法> 一.决策树算法: 1.训练阶段(决策树学习),也就是说:怎么样构 ...

  2. HCA数据下载

    HCA data downloads HCA data downloads PeRl` 还记得去年看的时候还是什么都没有,今年已经有数据可以下载了.

  3. .Net 面试题 汇总(五)

    1.简述javascript中的“=.==.===”的区别? =赋值 ==比较是否一般相等 "3"==3 //会做类型的隐式转换,true ===比较是否严格相等 "3& ...

  4. 引用ZXing生成二维码

    1.生成二维码 ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口. Zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码.本文引用 ...

  5. 北京Uber优步司机奖励政策(1月29日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. Java:当前线程运行完毕,再运行后续逻辑

    一.问题描述 在程序设计中,可能存在这样的情景:主线程中存在一个子线程,子线程需要在执行完毕后为后续代码逻辑提供参数.但在代码执行时,子进程还没执行完毕,后续的代码已经开始执行了,这时候就会出现参数为 ...

  7. CLR via c#读书笔记九:接口

    1.接口对一组方法签名进行了统一命名.接口还能定义事件.无参属性和有参属性(C#的索引器). 2.c#禁止接口定义任何一种静态成员. 3.C#编译器要求将实现接口的方法标记为public.CLR要求将 ...

  8. spring源码-自定义标签-4

    一.自定义标签,自定义标签在使用上面相对来说非常常见了,这个也算是spring对于容器的拓展.通过自定义标签的方式可以创造出很多新的配置方式,并且交给容器直接管理,不需要人工太多的关注.这也是spri ...

  9. 数据库c3p0配置文件

    <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-con ...

  10. 「日常训练」Divisibility by Eight(Codeforces Round 306 Div.2 C)

    题意与分析 极简单的数论+思维题. 代码 #include <bits/stdc++.h> #define MP make_pair #define PB emplace_back #de ...