图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。

news/2024/11/29 22:55:37/

@[TOC](利用matlab自带均值滤波器的代码,分别对一幅图像实现3*3,5*5,7*7,9*9的均值滤波,并对实验结果进行分析。)

@[TOC](分别给干净图像添加高斯和椒盐噪声,然后进行均值滤波、高斯滤波和中值滤波,并对实现结果进行分析。)

@[TOC](自编均值滤波器对一幅图像实现填充后,并完成3*3,5*5,7*7,9*9,11*11的均值滤波并对实验结果进行分析。)

题目一:

1、题目详情:利用matlab自带均值滤波器的代码,分别对一幅图像实现3*3,5*5,7*7,9*9的均值滤波,并对实验结果进行分析。

2、代码: 

% 读入图像
Image = imread('C:\Users\HUAWEI\Desktop\A计协\1大三重点\数字图像处理\数字图像处理第二次上机\lena.bmp');% 设置均值滤波
H3 = fspecial('average',[3,3]);
H5 = fspecial('average',[5,5]);
H7 = fspecial('average',[7,7]);
H9 = fspecial('average',[9,9]);% 利用滤波对图像进行处理
r3 = imfilter(Image,H3);
r5 = imfilter(Image,H5);
r7 = imfilter(Image,H7);
r9 = imfilter(Image,H9);% 展示结果
subplot(2,3,1);imshow(Image);title('原图');
subplot(2,3,2);imshow(r3);title('3*3均值滤波结果');
subplot(2,3,3);imshow(r5);title('5*5均值滤波结果');
subplot(2,3,4);imshow(r7);title('7*7均值滤波结果');
subplot(2,3,5);imshow(r9);title('9*9均值滤波结果');

3、运行结果 :

4、结论分析:均值滤波半径越大,处理结果越模糊。

题目二:

1、题目详情:分别给干净图像添加高斯和椒盐噪声,然后进行均值滤波、高斯滤波和中值滤波,并对实现结果进行分析。

2、代码:

% 读入图像
Image = imread('C:\Users\HUAWEI\Desktop\A计协\1大三重点\数字图像处理\数字图像处理第二次上机\lena.bmp');% 给原图加入高斯噪声
GaussainI = imnoise(Image,'gaussian');% 给原图加入椒盐噪声
SaltPepperI = imnoise(Image,'salt & pepper');% 设置均值滤波
aveFilter3 = fspecial('average',[3,3]);% 设置高斯滤波
gausFilter3 = fspecial('gaussian',[3,3],0.8);tempG=rgb2gray(GaussainI);  %灰度处理,灰度处理后的图像是二维矩阵
tempSP=rgb2gray(SaltPepperI);% 用均值滤波对高斯噪声图像进行处理
GJ = imfilter(GaussainI,aveFilter3);% 用高斯滤波对高斯噪声图像进行处理
GG = imfilter(GaussainI,gausFilter3,'conv');% 用中值滤波对高斯图像进行处理
GM = medfilt2(tempG,[3,3]);% 用均值滤波对椒盐噪声图像进行处理
SPJ = imfilter(SaltPepperI,aveFilter3);% 用高斯滤波对椒盐噪声图像进行处理
SPG = imfilter(SaltPepperI,gausFilter3,'conv');% 用中值滤波对椒盐噪声图像进行处理
SPM = medfilt2(tempSP,[3,3]);%展示结果
subplot(3,3,1);imshow(Image);title('原图');
subplot(3,3,2);imshow(GaussainI);title('添加高斯噪声后的图像');
subplot(3,3,3);imshow(SaltPepperI);title('添加椒盐噪声后的图像');
subplot(3,3,4);imshow(GJ);title('高斯噪声经均值滤波处理后');
subplot(3,3,5);imshow(GG);title('高斯噪声经高斯滤波处理后');
subplot(3,3,6);imshow(GM);title('高斯噪声经中值滤波处理后');
subplot(3,3,7);imshow(SPJ);title('椒盐噪声经均值滤波处理后');
subplot(3,3,8);imshow(SPG);title('椒盐噪声经高斯滤波处理后');
subplot(3,3,9);imshow(SPM);title('椒盐噪声经中值滤波处理后');

 3、运行结果:

 4、结论分析:含高斯噪声的图像用高斯滤波处理时效果好,含椒盐噪声的图像用中值滤波处理时效果好。

题目三:

1、题目详情:自编均值滤波器对一幅图像实现填充后,并完成3*3,5*5,7*7,9*9,11*11的均值滤波并对实验结果进行分析。

2、代码:

% 读入图像,并进行灰度处理,灰度处理后的图像是二维矩阵
Image = rgb2gray(imread('C:\Users\HUAWEI\Desktop\A计协\1大三重点\数字图像处理\数字图像处理第二次上机\lena.bmp'));% 给图像添加高斯噪声
GaussainI=imnoise(Image,'gaussian');%使用matlab自带的均值滤波对高斯噪声图像进行处理,用于后面与自编均值滤波函数的效果对比
H3 = fspecial('average',[3,3]);
b3 = imfilter(GaussainI,H3);% 获取图像二维矩阵的高和宽
[h,w]=size(GaussainI);% 设置均值滤波处理的半径,半径为1对应3*3均值滤波,半径为2对应5*5均值滤波...
r3 = 1; r5 = 2; r7 = 3; r9 = 4; r11 = 5;% 建新矩阵用于保存处理后的结果
matrix3 = zeros(h,w);
matrix5 = zeros(h,w);
matrix7 = zeros(h,w);
matrix9 = zeros(h,w);
matrix11 = zeros(h,w);% 扩展要被处理的图像,留出充足的处理空间
matrix3Plus=zeros(h+2*r3,w+2*r3);
matrix3Plus(r3+1:h+r3,r3+1:w+r3)=GaussainI;
matrix5Plus = zeros(h+2*r5,w+2*r5);
matrix5Plus(r5+1:h+r5,r5+1:w+r5) = GaussainI;
matrix7Plus = zeros(h+2*r7,w+2*r7);
matrix7Plus(r7+1:h+r7,r7+1:w+r7)=GaussainI;
matrix9Plus = zeros(h+2*r9,w+2*r9);
matrix9Plus(r9+1:h+r9,r9+1:w+r9)=GaussainI;
matrix11Plus = zeros(h+2*r11,w+2*r11);
matrix11Plus(r11+1:h+r11,r11+1:w+r11)=GaussainI;%自编算法实现均值滤波处理
%除开边界,要处理的是2到4
for x=r3+1:h+r3for y=r3+1:w+r3new_r=x-r3;new_c=y-r3;value=0;for i=1:2*r3+1for j=1:2*r3+1 %每一个被处理的点,处理后的值,为该点高斯函数的值乘以该点周围(3*3)范围的加和value=value+(matrix3Plus(new_r+i-1,new_c+j-1));endend%将对应位置的结果保存matrix3(x,y)=value/((r3*2+1)*(r3*2+1));end
endfor x=r5+1:h+r5for y=r5+1:w+r5new_r=x-r5;new_c=y-r5;value=0for i=1:2*r5+1for j=1:2*r5+1value=value+(matrix5Plus(new_r+i-1,new_c+j-1));endendmatrix5(x,y)=value/((r5*2+1)*(r5*2+1));end
endfor x=r5+1:h+r5for y=r5+1:w+r5new_r=x-r5;new_c=y-r5;value=0for i=1:2*r5+1for j=1:2*r5+1value=value+(matrix5Plus(new_r+i-1,new_c+j-1));endendmatrix5(x,y)=value/((r5*2+1)*(r5*2+1));end
endfor x=r7+1:h+r7for y=r7+1:w+r7new_r=x-r7;new_c=y-r7;value=0for i=1:2*r7+1for j=1:2*r7+1value=value+(matrix7Plus(new_r+i-1,new_c+j-1));endendmatrix7(x,y)=value/((r7*2+1)*(r7*2+1));end
endfor x=r9+1:h+r9for y=r9+1:w+r9new_r=x-r9;new_c=y-r9;value=0for i=1:2*r9+1for j=1:2*r9+1value=value+(matrix9Plus(new_r+i-1,new_c+j-1));endendmatrix9(x,y)=value/((r9*2+1)*(r9*2+1));end
endfor x=r11+1:h+r11for y=r11+1:w+r11new_r=x-r11;new_c=y-r11;value=0for i=1:2*r11+1for j=1:2*r11+1value=value+(matrix11Plus(new_r+i-1,new_c+j-1));endendmatrix11(x,y)=value/((r11*2+1)*(r11*2+1));end
end%展示结果
subplot(3,3,1);imshow(Image);title('原图');
subplot(3,3,2);imshow(GaussainI);title('添加高斯噪声后');
subplot(3,3,3);imshow(b3);title('matlab自带均值滤波3*3滤波处理后');
subplot(3,3,4);imshow(uint8(matrix3));title('自编3*3均值滤波处理后');
subplot(3,3,5);imshow(uint8(matrix5));title('自编5*5均值滤波处理后');
subplot(3,3,6);imshow(uint8(matrix7));title('自编7*7均值滤波处理后');
subplot(3,3,7);imshow(uint8(matrix9));title('自编9*9均值滤波处理后');
subplot(3,3,8);imshow(uint8(matrix11));title('自编11*11均值滤波处理后');

3、运行结果: 

4、结论分析:自编均值滤波和matlab均值滤波函数对噪声的处理效果可达到一致,滤波使用的邻域半径越大,边缘模糊越厉害。


http://www.ppmy.cn/news/811580.html

相关文章

MATLAB的图像中值滤波

下面来介绍一下图像的中值滤波方法: 1、首先打开MATLAB软件,在其主界面的编辑器中写入下列代码: Iimread(G:\MATLAB\bm.bmp); %读取保存路径下的图片 Irgb2gray(I); Jimnoise(I,salt & pepper,0.02); subplot(231),imshow(I);titl…

matlab 实现中值滤波

平均滤波器不能滤除信号中的脉冲噪声,而中值滤波器可以消除部分脉冲噪声 中值滤波器的原理: 按照样本的幅值排序,然后选择其中的中值,作为滤波器的输出 代码实现如下: clear all; clf N200; n0:N-1;%产生200个脉冲噪…

Matlab 均值滤波与中值滤波

%%以下是本人在学习中的个人理解,如有错误请指出 所谓的滤波就是一个系数矩阵(也称为模板,滤波器,滤波模板,核,掩模或者窗口),然后用这个模板对应图像矩阵(填充0后的图像…

MATLAB图像的中值滤波——手动滤波和medfilt2函数滤波

本文还是书接上回,https://blog.csdn.net/weixin_44502554/article/details/126283957?spm1001.2014.3001.5502 前期的思路是准备在FPGA当中实现图像的中值滤波,所以先搭建一下MATLAB的仿真平台,就是在MATLAB中先实现一下,具体的…

中值滤波(matlab自编程实现)

个人简介: 📦个人主页:赵四司机 🏆学习方向:JAVA后端开发 📣种一棵树最好的时间是十年前,其次是现在! ⏰往期文章:SpringBoot项目整合微信支付 💖喜欢的话麻烦…

中值滤波器的matlab实现

中值滤波器能够有效降低图像中的椒盐噪声,其中在matlab中可以使用两种方式实现,操作过程如下 首先载入没有噪声的待处理图像, aimread(zl1.tif); atofloat(a); %注意要用tofloat将uint8类转换成浮点数,因为在滤波运算中都是以浮点…

中值滤波(matlab)

中值滤波 中值滤波:是一种非线性数字滤波器技术, 用于降噪。 理解:去一个模板,可为3 * 3, 5 * 5,n * n…每次从图像中取出模板大小的矩阵,将所有元素排序,取中间值放入木板的中心位置,再还原到…

基于Matlab的图像处理②(图像增强技术,中值滤波,均值滤波)

目录 一.常用函数 1.导入图像 2.显示图像 3.显示图片色彩直方图 4.调整对比度 5.分块显示 6.导出图像 7.中值滤波 8.增加噪声 9.灰度函数 二.运行代码 三.效果 一.常用函数 1.导入图像 cimread(E:\photo\3.jpg);//(‘’)里面是图片的文件路…