Ⅰ 均值滤波怎么算的
均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标象素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即去掉目标像素本身)。再用模板中的全体像素的平均值来代替原来像素值。均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度个g(x,y),即个g(x,y)=1/m ∑f(x,y) m为该模板中包含当前像素在内的像素总个数。均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。
Ⅱ 求均值滤波和中值滤波算法的MATLAB代码
5*5的均值滤波代码
w2=fspecial('average',[5 5]); %% 先定义一个滤波器
h=imfilter(a,w2,'replicate'); %%让图像通过滤波器
imshow(h);
imwrite(h,'8.jpg');
中值的暂时还不会
Ⅲ 编写用均值滤波去噪的matlab程序,用两种方法实现.(重谢)
1、双循环语句,移动平均法。
<p>双循环语句,移动平均法</p> <p>%均值滤波</p>
<p>clc,clear;</p>
<p>f=imread('lena.bmp');</p>
<p>subplot(121),imshow(f),title('原图');</p>
<p>f1=imnoise(f,'gaussian',0.002,0.0008);</p>
<p>%subplot(222),imshow(f1),title('添加高斯噪声图');</p>
<p>k1=floor(3/2)+1;</p>
<p>k2=floor(3/2)+1;</p> <p>X=f1;</p>
<p>[M,N]=size(X);</p> <p>uint8Y=zeros(M,N);</p>
<p>funBox=zeros(3,3);</p> <p>fori=1:M-3</p>
<p>forj=1:N-3</p> <p>funBox=X(i:i+3,j:j+3);</p>
<p>s=sum(funBox(:));</p> <p>h=s/9;</p>
<p>Y(i+k1,j+k2)=h;</p> <p>end;</p>
<p>end;</p> <p>Y=Y/255;</p>
<p>subplot(122),imshow(Y),title('均值滤波');</p>
<p>实现图:</p>
2、filter2。
<p>filter2</p>
<p>clearall;</p>
<p>I=imread('lena.bmp');</p>
<p>%读入预处理图像</p>
<p>imshow(I)</p> <p>%显示预处理图像</p>
<p>K1=filter2(fspecial('average',3),I)/255;</p> <p>%进行3*3均值滤波</p>
<p>K2=filter2(fspecial('average',5),I)/255;</p> <p>%进行5*5均值滤波</p>
<p>K3=filter2(fspecial('average',7),I)/255;</p> <p>%进行7*7均值滤波</p>
<p>figure,imshow(K1)</p> <p>figure,imshow(K2)</p>
<p>figure,imshow(K3)</p>
Ⅳ 平均滤波有几种
1、限幅滤波法(又称程序判断滤波法)
A、方法:
根据经验判断,确定两次采样允许的最大偏差值(设为A)
每次检测到新值时判断:
如果本次值与上次值之差<=A,则本次值有效
如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
B、优点:
能有效克服因偶然因素引起的脉冲干扰
C、缺点
无法抑制那种周期性的干扰
平滑度差
2、中位值滤波法
A、方法:
连续采样N次(N取奇数)
把N次采样值按大小排列
取中间值为本次有效值
B、优点:
能有效克服因偶然因素引起的波动干扰
对温度、液位的变化缓慢的被测参数有良好的滤波效果
C、缺点:
对流量、速度等快速变化的参数不宜
3、算术平均滤波法
A、方法:
连续取N个采样值进行算术平均运算
N值较大时:信号平滑度较高,但灵敏度较低
N值较小时:信号平滑度较低,但灵敏度较高
N值的选取:一般流量,N=12;压力:N=4
B、优点:
适用于对一般具有随机干扰的信号进行滤波
这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动
C、缺点:
对于测量速度较慢或要求数据计算速度较快的实时控制不适用
比较浪费RAM
Ⅳ 用MATLAB编程实现均值滤波算法
1:smoothingAverageFilterMain.mclc;clear;fid = fopen('lenai.raw');temp= fread(fid, [256,256]);LenaRaw=uint8(temp');subplot(1,2,1) Imshow(LenaRaw);title('原始图像')subplot(1,2,2) Imshow(smoothingAverageFilter(LenaRaw,3));title('自制函数,使用用3*3模板,均值滤波图像')2:smoothingAverageFilter.mfunction returnData=smoothingAverageFilter(arg,arg2)[Iwidth,Ilength]=size(arg);temp=double(arg);returnData=zeros(Iwidth,Ilength);totalLength=arg2*arg2;for i=1:Iwidth-arg2+1 for j=1:Ilength-arg2+1 % temp(i,j)=average(arg(i:i+arg2,j:j+arg2)); sum=0.0; for n=1:arg2 for k=1:arg2 sum=sum+temp(i+n-1,j+k-1); end end returnData(i,j)=sum/totalLength; endendreturnData=uint8(returnData);end
Ⅵ 怎样用Matlab循环编程实现均值滤波算法,采用3*3的窗口
随便写了一个方法,没优化,运行速度有点慢。对于图像范围边界,只跟图像内部点做均值。
clear all
clc
A=imread('manuo1.jpg');
A=im2double(A);
subplot(1,2,1)
imshow(A);
[line,row]=size(A);
lines=0;
rows=0;
linee=0;
rowe=0;
temp=0;
B=[];
for i=1:1:line
for j=1:1:row
lines=i-1;
linee=i+1;
rows=j-1;
rowe=j+1;
if i==1
lines=1;
linee=2;
end
if i==line
lines=line-1;
linee=line;
end
if j==1
rows=1;
rowe=2;
end
if j==row
rows=row-1;
rowe=row;
end
temp=0;
for m=lines:1:linee
for n=rows:1:rowe
temp=temp+A(m,n);
end
end
B(i,j)=temp/((linee-lines+1)*(rowe-rows+1));
end
end
subplot(1,2,2)
imshow(B);
Ⅶ 计算3x3窗口的均值滤波和中值滤波(向下取整保留整数值)。
均值滤波和中值滤波属于空域图像增强的处理方法,均值滤波去麻点,中值滤波保边缘。
要进行均值滤波首先要生成一个3x3矩阵。算法运算窗口一般采用奇数点的邻域来计算中值,最常用的窗口有3X3和5X5模型。
1、通过2个或者3个RAM的存储来实现3X3像素窗口。
2、通过2个或者3个FIFO的存储来实现3X3像素窗口。
3、通过2行或者3行Shift_RAM的存储来实现3X3像素窗口。
(7)均值滤波算法扩展阅读:
注意事项:
1、空间域指图像本身,空域变换直接对图像中的像素进行操作。
2、在进行横向滑动窗口滤波时,窗口中的像素仅仅是丢掉了左侧一列,增加了右侧一列数据,如果丢掉中间重叠的这一部分数据,到下个窗口再重新寻址和读取数据,无疑是计算的沉重负担,所以该算法的核心思想就是充分利用重叠部分,使用直方图来计算中值,不需要排序算法,快,且高效。
3、注意到两个直方图的累加是一个O(1)操作,和直方图的元素个数有关,而直方图元素个数是由图像位深决定的。
Ⅷ 如何将一个经均值滤波后的图片通过锐化算法变的清晰一点
均值滤波是对图像进行累加求和运算,而锐化是对图像进行逆运算:差分,其本质就是提高边缘像素的反差。因此锐化就可以增强图像边缘,让模糊图像变得清晰(给分吧!!)
Ⅸ 高斯滤波、均值滤波、中值滤波、最小均方差滤波、Gabor滤波的优缺点是什么。
高斯滤波
由于高斯函数的傅立叶变换仍是高斯函数, 因此高斯函数能构成一个在频域具有平滑性能的低通滤波器。可以通过在频域做乘积来实现高斯滤波。均值滤波是对是对信号进行局部平均, 以平均值来代表该像素点的灰度值。矩形滤波器(Averaging Box Filter)对这个二维矢量的每一个分量进行独立的平滑处理。通过计算和转化 ,得到一幅单位矢量图。这个 512×512的矢量图被划分成一个 8×8的小区域 ,再在每一个小区域中 ,统计这个区域内的主要方向 ,亦即将对该区域内点方向数进行统计,最多的方向作为区域的主方向。于是就得到了一个新的64×64的矢量图。这个新的矢量图还可以采用一个 3×3模板进行进一步的平滑。
均值滤波
把每个像素都用周围的8个像素来做均值操作。可以平滑图像,速度快,算法简单。但是无法去掉噪声,这能微弱的减弱它。
中值滤波
常用的非线性滤波方法 ,也是图像处理技术中最常用的预处理技术。它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘。加权中值滤波能够改进中值滤波的边缘信号保持效果。但对方向性很强的指纹图像进行滤波处理时 ,有必要引入方向信息,即利用指纹方向图来指导中值滤波的进行。
最小均方差滤波器
亦称维纳滤波器,其设计思想是使输入信号乘响应后的输出,与期望输出的均方误差为最小。
Gabor滤波
Gabor变换是英国物理学家 Gabor提出来的,由“测不准原理”可知,它具有最小的时频窗,即Gabor函数能做到具有最精确的时间-频率的局部化;另外, Gabor函数与哺乳动物的视觉感受野相当吻合,这一点对研究图像特征检测或空间频率滤波非常有用。恰当的选择其参数, Gabor变换可以出色地进行图像分割、识别与理解。如文献提出的基于Gabor滤波器的增强算法。