数字图像处理邻域平均法滤波实验报告matlab实现

合集下载

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告161420230 蔡讴实验一1.获取实验用图像:rice.jpg. 使用imread函数将图像读入Matlab。

a=imread('D\:rice.png');figure;title(‘原图’);axis on;imshow(a);2.产生灰度变换函数T1,使得:0.3r r < 0.35s = 0.105 + 2.6333(r –0.35) 0.35 ≤r ≤0.651 + 0.3(r – 1) r > 0.65用T1对原图像rice.jpg进行处理,使用imwrite函数保存处理后的新图像。

a=double(a)/256;figure,imhist(a),title('原直方图');axis on;r=[0:0.001:1];s1=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[ r>0.65].*(1+0.3*(r-1));a1=[a<0.35].*a*0.3+[a<=0.65].*[a>=0.35].*(0.105+2.6333*(a -0.35)) +[a>0.65].*(1+0.3*(a-1));figure,imshow(a1),title('改后一');axis on;figure,imhist(a1),title('改后直方图一');axis on;imwrite(a1,'改后rice一.jpg');3.产生灰度变换函数T2,使得:s =用T2对原图像rice.jpg 进行处理,使用imwrite 保存处理后的新图像。

r2=[0:0.001:1];t2=[r2<=0.5].*(15.9744*r2.^5)+[r2>0.5].*((r2-0.5).^0.2+0.12); subplot(2,3,5); plot(r2,t2,'r'); title('更改后直方图');subplot(2,3,4); imshow(a); title('更改后');A3=[a<=0.5].*(15.9744*a.^5)+[a>0.5].*((a-0.5).^0.2+0.12); subplot(2,3,6); imshow(A3); title('更改后');imwrite(A3,'更改_3.jpg','jpg');15.9744r 5 r ≤ 0.5 (r – 0.5)0.2+ 0.12 r > 0.54.分别用s = r0.6; s = r0.4; s = r0.3对kids.tiff图像进行处理。

数字图像处理matlab版实验报告

数字图像处理matlab版实验报告

数字图像处理实验报告(matlab版)一.实验目的:熟悉数字图像处理中各种椒盐噪声的实质,明确各种滤波算法的的原理。

进一步熟悉matlab的编程环境,熟悉各种滤波算法对应的matlab函数。

实验结果给以数字图像处理课程各种算法处理效果一个更直观的印象。

二.实验原理:1.IPT(图像处理工具箱)基本函数介绍1. imread函数该函数用于从图形文件中读出图像。

格式A=IMRAED(FILENAME,FMT)。

该函数把FILENAME 中的图像读到A中。

若文件包含一个灰度图,则为二维矩阵。

若文件包含一个真彩图(RGB),则A为一三维矩阵。

FILENAME指明文件,FMT指明文件格式。

格式[X,MAP]=IMREAD(FILENAME,FMT).把FILENAME中的索引图读入X,其相应的调色板读到MAP中.图像文件中的调色板会被自动在范围[0,1]内重新调节。

FMT的可能取值为jpg 或jpeg,tif或tiff,bmp,png,hdf,pcx,xwd。

2.imwrite函数该函数用于把图像写入图形文件中。

格式IMWRITE(A,FILENAME,FMT)把图像A写入文件FILENAME中。

FILENAME指明文件名, FMT指明文件格式。

A既可以是一个灰度图,也可以是一个真彩图像。

格式IMWRITE(X,MAP,FILENAME,FMT)把索引图及其调色板写入FILENAME中。

MAP必须为合法的MATLAB调色板,大多数图像格式不支持多于256色的调色板。

FMT的可能取值为tif或tiff,jpg或jpeg,bmp,png,hdf,pcx,xwd。

3. imshow函数显示图像。

格式IMSHOW(I,N).用N级离散灰度级显示灰度图象I。

若省略N,默认用256级灰度显示24位图像,64级灰度显示其他系统。

格式IMSHOW(I,[LOW HIGH]),把I 作为灰度图显示。

LOW值指定为黑色,HIGH指定为白色,中间为按比例分布的灰色。

数字图像处理实验报告-基于Matlab

数字图像处理实验报告-基于Matlab

华东师范大学电子工程系2017.6实验1:图像灰度级修正【实验目的】掌握常用的图像灰度级修正方法(灰度变换法和直方图均衡化),加深对直方图的理解。

观察图像的增强效果,对灰度级修正前后的图像加以比较。

【实验内容】1)编程实现图像的灰度变换,改变图像的输入、输出映射参数范围(线性拉伸和反比);2)修改参数gamma值(大于、小于、等于1),观察处理结果;3)对图像直方图作均衡化处理,显示均衡前后的图像及其直方图。

【实验代码】original=imread('lena.bmp');linstr=imadjust(original,[0.3 0.7],[0 1]); %线性拉伸opposite=imadjust(original,[0 1],[1 0]); %反比above=imadjust(original,[0 1],[0 1],2); %gamma>1equal=imadjust(original,[0 1],[0 1],1); %gamma=1below=imadjust(original,[0 1],[0 1],0.5); %gamma<1subplot(3,3,1);imshow(original);title('原图像');subplot(3,3,2);imshow(linstr);title('线性拉伸');subplot(3,3,3);imshow(opposite);title('反比');subplot(3,3,4);imshow(above);title('gamma>1');subplot(3,3,5);imshow(equal);title('gamma=1');subplot(3,3,6);imshow(below);title('gamma<1');subplot(3,3,7);imhist(original);title('原图像直方图'); histequal=histeq(original);%对图像均衡化subplot(3,3,8);imshow(histequal);title('均衡后的图像'); subplot(3,3,9);imhist(histequal);title('均衡图像的直方图'); axis([0 256 0 2000]);【输出图像】【实验思考】根据以下图片以及实验结果可知gamma>1时图像整体变暗,灰度级整体变小;gamma<1时图像整体变亮,灰度级整体变小;而gamma=1时,图像维持不变。

数字图像处理实验报告(邻域平均法和中值滤波法)

数字图像处理实验报告(邻域平均法和中值滤波法)

数字图像处理实验报告(邻域平均法和中值滤波法)数字图像处理实验报告班级:姓名:学号:日期:邻域平均法和中值滤波处理一、实验目的图像变换是数字图像处理中的一种综合变换,如直方图变换、几何变换等。

通过本实验,使得学生掌握两种变换的程序实现方法。

二、实验任务请设计程序,分别用邻域平均法,其模板为:和中值滤波法对testnoise 图像进行去噪处理(中值滤波的模板的大小也设为3X 3)。

三、实验环境本实验在Windows 平台上进行,对内存及cpu 主频无特别要求,使用VC或者MINGW (gcc)编译器均可。

四、设计思路介绍代码的框架结构、所用的数据结构、各个类的介绍(类的功能、类中方法的功能、类的成员变量的作用)、各方法间的关系写。

在此不进行赘述。

五、具体实现实现设计思路中定义的所有的数据类型,对每个操作给出实际算法。

对主程序和其他模块也都需要写出实际算法。

代码:<邻域平均法>(3*3)#include#include#include#include "hdr.h" /* ------ 定义结构指针--- */struct bmphdr *hdr;// 定义用于直方图变量unsigned char *bitmap,*count,*new_color; /* ---- main() 函数编--- */ int main(){ //定义整数i,j 用于函数循环时的,nr_pixels 为图像中像素的个数int i, j ,nr_pixels,nr_w,nr_h; // 定义两个文件指针分别用于提取原图的数据和生成直方图均衡化后的图像FILE *fp, *fpnew; // 定义主函数的参数包括:输入的位图文件名和输出的位图文件名,此处内容可以不要,在DOS下执行命令的时候再临时输入也可,为了方便演示,我这里直接把函数的参数确定了。

//argc=3; //argv[1]="test.bmp"; //argv[2]="testzf.bmp"; // 参数输入出错显示/* if (argc != 3) {printf("please input the name of input and out bitmap files\n");exit(1);}*/// 获取位图文件相关信息// hdr = get_header(argv[1]); hdr = get_header("testnoise.bmp");if (!hdr) exit(1); // 以二进制可读方式打开输入位图文件fp = fopen("testnoise.bmp", "rb");if (!fp) {printf("File open error!\n");exit(1);} // 文件指针指向数据区域fseek(fp, hdr->offset, SEEK_SET)计算位图像素的个数nr_pixels = hdr->width * hdr->height;nr_w = hdr->width;nr_h = hdr->height;bitmap = malloc(nr_pixels);new_color = malloc(nr_pixels);count = malloc((nr_w+2)*(+nr_h+2));//读取位图数据到bitmap 中fread(bitmap, nr_pixels, 1, fp);fclose(fp);// 因为图像边缘无法使用邻域平均,所以根据邻近颜色填补图像的周围一圈,存入count[] 数组中// 中心图像存入count[] for(i=nr_w+3;i<(nr_w+2)*(+nr_h+2)-nr_w-3;i++) { j=i/(nr_w+2);if(i%(nr_w+2)!=0&&(i+1)%(nr_w+2)!=0) count[i]=bitmap[i-nr_w-1-2*j]; } // 填补第一排for(i=1;i} // 填补最后一排for(i=1;i} // 填补左边一排for(i=0;i} // 填补右边一排for(i=0;i<nr_h+3;i++)< p="">{ count[(i+1)*(nr_w+2)-1]=count[(i+1)*(nr_w+2)-2];}// 邻域平均3*3for(j=nr_w+3,i=0;j<(nr_w+2)*(+nr_h+2)-nr_w-3;j++) {if(j%(nr_w+2)!=0&&(j+1)%(nr_w+2)!=0)new_color[i]=(count[j]+count[j-1]+count[j+1]+count[j-nr_w-2]+count[j-1-nr_w-2]+count[j+1-nr_w-2]+count[j+nr_w+2]+count[j-1+nr_w+2]+count[j+1+nr_w+2])/9,i++; } //结果存入bitmap[] 中for (i = 0; i < nr_pixels; i++;bitmap[i]=new_color[i]; // 打开一个以输出文件名命名的文件,设为可写的二进制形式fpnew = fopen("test_lynoise.bmp", "wb+");// 由于位图文件的头部信息并没有因直方图均衡化而改变,因此输出图像的头部信息从原位图文件中拷贝即可:fwrite(hdr->signature, 2, 1, fpnew); fwrite(&hdr->size, 4, 1, fpnew);fwrite(hdr->reserved, 4, 1, fpnew); fwrite(&hdr->offset, 4, 1, fpnew); fwrite(&hdr->hdr_size, 4, 1, fpnew); fwrite(&hdr->width, 4, 1, fpnew); fwrite(&hdr->height, 4, 1, fpnew); fwrite(&hdr->nr_planes, 2, 1, fpnew); fwrite(&hdr->bits_per_pixel, 2, 1, fpnew); fwrite(&hdr->compress_type, 4, 1, fpnew); fwrite(&hdr->data_size, 4, 1, fpnew); fwrite(&hdr->resol_hori, 4, 1, fpnew); fwrite(&hdr->resol_vert, 4, 1, fpnew);fwrite(&hdr->nr_colors, 4, 1, fpnew); fwrite(&hdr->important_color, 4, 1, fpnew); if (hdr->offset > 54) fwrite(hdr->info, (hdr->offset - 54), 1, fpnew); // 直方图均衡化的数据(bitmap) 赋值fwrite(bitmap, nr_pixels, 1, fpnew);// 关闭fclose(fpnew);// 释放内存(优化程序必需) free(hdr);free(bitmap);</nr_h+3;i++)<>。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告光信13-2班2013210191韩照夏数字图像处理实验报告实验一数字图像空间域平滑一、实验目的掌握图像空间域平滑的原理和程序设计;观察对图像进行平滑增强的效果。

二、实验设备计算机,Matlab程序平台。

三、实验原理图像平滑处理的目的是改善图像质量和抽出对象特征。

任何一幅未经处理的原始图像,都存在着一定程度的噪声干扰。

噪声恶化了图像质量,使图像模糊,甚至淹没特征,给分析带来困难。

消除图像噪声的工作称为图像平滑或滤波。

针对不同噪声源(如光栅扫描、底片颗粒、机械元件、信道传输等)引起的不同种类噪声(如加性噪声、乘性噪声、量化噪声等),平滑方法也不同。

平滑可以在空间域进行,也可以在频率域进行。

1.局部平均法局部平滑法是一种直接在空间域上进行平滑处理的技术。

假设图像由许多灰度恒定的小块组成,相邻象素间存在很高的空间相关性,而噪声则是统计独立的。

因此,可用邻域内各象素的灰度平均值代替该象素原来的灰度值,实现图像的平滑。

对图像采用3×3的邻域平均法,其作用相当于用以下模板与图像进行卷积运算。

2. 超限象素平滑法 对邻域平均法稍加改进,可导出超限象素平滑法。

其原理是将f(x,y)和邻域平均g(x,y)差的绝对值与选定的阈值进行比较,根据比较结果决定点(x,y )的最后灰度g ´(x,y)。

其表达式为3. 二维中值滤波中值滤波就是用一个奇数点的移动窗口, 将窗口中心点的值用窗口内各点的中值代替。

二维中值滤波可由下式表示常用的窗口有:四、实验步骤1.实验准备:打开计算机,进入Matlab 程序界面。

2.输入图像空间域平滑处理程序,程序如下:⎩⎨⎧>-= ),(),(),( ),,(),('其他,当y x f T y x g y x f y x g y x g )},({),(y x f Med y x g A=程序1.1 图像平滑处理clear;clc;I=imread('lena.jpg');subplot(3,2,1);imshow(I);title('原图像');I1=imnoise(I,'salt & pepper',0.02);subplot(3,2,2);imshow(I1);title('对I加椒盐噪声的图像');h2=fspecial('average',[3 3]);I2=imfilter(I1,h2,'replicate');subplot(3,2,3);imshow(I2);title('3×3邻域平滑');h3=fspecial('average',[5 5]);I3=imfilter(I1,h3,'replicate');subplot(3,2,4);imshow(I3);title('5×5邻域平滑');I4=I1;I4((abs(I1-I2))>64)=I2((abs(I1-I2))>64);subplot(3,2,5);imshow(I4);title('3×3超限象素平滑(T=64)'); I5=I1;I5((abs(I1-I3))>48)=I3((abs(I1-I3))>48);subplot(3,2,6);imshow(I5);title('5×5超限象素平滑(T=48)');程序1.2 图像平均平滑与中值滤波clear;clc;I=imread('lena.jpg');subplot(3,3,1);imshow(I);title('原图像');I1=imnoise(I,'gaussian',0.02);subplot(3,3,2);imshow(I1);title('高斯噪声');I2=imnoise(I,'salt & pepper',0.02);subplot(3,3,3);imshow(I1);title('椒盐噪声');h1=fspecial('average',[3 3]);I3=imfilter(I1,h1,'replicate');subplot(3,3,4);imshow(I3);title('对I1 3×3邻域平滑');h2=fspecial('average',[3 3]);I4=imfilter(I2,h2,'replicate');subplot(3,3,5);imshow(I4);title('对I2 3×3邻域平滑');I5=medfilt2(I1,[5 5]);subplot(3,3,6);imshow(I5);title('对I1 5×5中值滤波');I6=medfilt2(I2,[5 5]);subplot(3,3,7);imshow(I6);title('对I2 5×5中值滤波');3.运行图像处理程序,并保存处理结果图像。

MATLAB图像滤波实验报告

MATLAB图像滤波实验报告

1图像处理实验实验报告院(系)名称专业名称学生姓名学号任课老师年月日1 实验目的利用MATLAB实现图像滤波,边界检测,从空间域与频域上加深对图像滤波的理解。

2 实验内容1. 对lena.bmp分别添加高斯、椒盐、泊松噪声,并比较高斯滤波与中值滤波的效果。

(使用matlab自带函数即可)2. 对lena.bmp实现laplace算子、Sobel算子、Kirch算子、Canny算子等边界检测算子中的任何两个;(不使用matlab自带函数)3. 通过观察rect.bmp和rect-45度.bmp的傅立叶频谱,了解图像傅立叶变换的旋转、平移等特性;4. 对grid.bmp实现理想低通;5. 对cave.jpg实现同态滤波算法,观察光照校正的效果(使用高斯型高通滤波器的离散化结果作为模板)。

3 实验步骤及算法流程4 实验结果分析4.1 空间域滤波图1 加高斯噪声与滤波图2 密度为0.1的椒盐噪声与滤波图3 密度为0.5的椒盐噪声与滤波图4 加泊松噪声与滤波高斯滤波是构造一个高斯卷积掩膜,对每一个点的邻域进行卷积达到滤波的效果,中值滤波是用邻域中像素的中值代替当前像素,是非线性的。

分析以上三幅图,知高斯滤波的效果对每种噪声差不多;中值滤波对椒盐噪声来说效果非常好,在椒盐密度不大的情况下几乎可以完全去除噪声。

以以上四幅图来说,中值滤波的效果要比高斯滤波的效果好。

4.2 边界检测图5 Laplace算子检测边界图6 Sobel算子检测边界4.3 频域转换图7 旋转前的频域(经fftshift处理)图8 旋转45°后的频域(经fftshift处理) 经上图可知,当图像旋转45°后,相应的频域也旋转45°。

4.4 频域低通滤波图9 原始图像grid.bmp的频域(经fftshift处理)中心尖峰的两侧出现两个次尖峰,对应正弦噪声的频率,需将其滤掉。

图10 处理后的频域进行频域的处理后,空间域上的图像如下所示:图11 对grid.bmp低通滤波4.5 同态滤波图12 原始图像cave.jpg 选择合适的高通滤波器进行同态滤波的效果如下:图13 同态滤波后的图像5 思考题1. 依次给出“高斯平滑滤波器、中值滤波器、laplace滤波器”是线性还是非线性的。

MATLAB图像邻域运算,去除噪声,模板运算中值滤波,均值滤波

MATLAB图像邻域运算,去除噪声,模板运算中值滤波,均值滤波

1.列出常用的卷积模板2.基于3×3的模板,编写均值滤波的处理程序,处理含有加性高斯噪声和椒盐噪声的图像,观察处理结果3.编写中值滤波程序,处理相同的图像与均值滤波进行比较;改变模板尺寸观察处理结果4.编程实现利用一阶微分算子和二阶拉普拉斯算子进行图像锐化的程序5.对比不同的邻域运算结果,体会图像锐化与图像平滑的区别均值滤波处理含有椒盐噪声图像程序代码(1):模板运算f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);r=1;for i=2:row-1for j=2:col-1g(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+f(i,j+1)+f (i+1,j-1)+f(i+1,j)+f(i+1,j+1))/9;g=uint8(g);endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(g);title('均值滤波处理后的图像')椒盐噪声图像均值滤波处理后的图像(2):mean函数均值滤波f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);g=size(f);for i=2:row-1for j=2:col-1t=f(i-1:i+1,j-1:j+1);t=double(t);g(i,j)=mean(mean(t));g(i,j)=uint8(g(i,j));endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')均值滤波处理后的图像(3)可变模板处理f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;g=size(f);for i=2:row-1for j=2:col-1s=0;s=double(s);for m=-r:rfor n=-r:rs=s+f(i+m,j+n);endendg(i,j)=s/power((r+2),2);endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')椒盐噪声图像均值滤波处理后的图像均值滤波处理含有加性高斯噪声图像程序代码(1):模板运算f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;for i=2:row-1for j=2:col-1g(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+f(i,j+1)+f (i+1,j-1)+f(i+1,j)+f(i+1,j+1))/9;g=uint8(g);endendsubplot(121);imshow(uint8(f));title('加性高斯噪声图像');subplot(122);imshow(g);title('均值滤波处理后的图像')加性高斯噪声图像均值滤波处理后的图像(2):mean函数均值滤波f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;g=size(f);for i=2:row-1for j=2:col-1t=f(i-1:i+1,j-1:j+1);t=double(t);g(i,j)=mean(mean(t));g(i,j)=uint8(g(i,j));endendsubplot(121);imshow(uint8(f));title('加性高斯噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')均值滤波处理后的图像(3):可变模板处理f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;g=size(f);for i=2:row-1for j=2:col-1s=0;s=double(s);for m=-r:rfor n=-r:rs=s+f(i+m,j+n);endendg(i,j)=s/power((r+2),2);endendsubplot(121);imshow(uint8(f));title('加性高斯噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')椒盐噪声图像均值滤波处理后的图像中值滤波(椒盐噪声图像处理)f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);g=size(f);r=1;for i=r+1:row-rfor j=r+1:col-rt=f(i-r:i+r,j-r:j+r);id=0;for tm=1:5m=0;for k=1:9if(m<t(k))m=t(k);id=k;endendt(id)=0;endg(i,j)=m;endendsubplot(121);imshow(uint8(f));title('原图像');subplot(122);imshow(uint8(g));title('中值滤波处理后的图像')R=1时的图像原图像中值滤波处理后的图像R=5原图像中值滤波处理后的图像中值滤波(加性高斯噪声)f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);g=size(f);r=1;for i=r+1:row-rfor j=r+1:col-rt=f(i-r:i+r,j-r:j+r);id=0;for tm=1:5m=0;for k=1:9if(m<t(k))m=t(k);id=k;endendt(id)=0;endg(i,j)=m;endendsubplot(121);imshow(uint8(f));title('原图像');subplot(122);imshow(uint8(g));title('中值滤波处理后的图像')原图像中值滤波处理后的图像R=5原图像中值滤波处理后的图像不同领域运算结果比较r=2f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);r=2;g=size(f);for i=r+1:row-rfor j=r+1:col-rs=0;s=double(s);for m=-r:rfor n=-r:rs=s+f(i+m,j+n);endendg(i,j)=s/power((r+2),2);endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')均值滤波处理后的图像R=3椒盐噪声图像均值滤波处理后的图像R=8椒盐噪声图像均值滤波处理后的图像。

matlab 邻域平均法

matlab 邻域平均法

matlab邻域平均法邻域平均法是图像处理中一种常用的平滑滤波方法,用于减小图像中噪声的影响。

在MATLAB中,你可以通过邻域平均法实现图像的平滑处理。

以下是一个简单的步骤:1.读取图像:```matlab%读取图像img=imread('your_image.jpg');```2.设定滤波器的大小:选择邻域平均法的滤波器大小,通常为一个正方形的区域,例如3x3、5x5等。

3.应用邻域平均法:```matlab%设置滤波器大小filter_size=3;%例如,3x3的滤波器%应用邻域平均法smoothed_img=imfilter(img,fspecial('average',[filter_size filter_size]));```上述代码中,`fspecial('average',[filter_size filter_size])`用于创建一个平均滤波器。

`imfilter`函数将滤波器应用于原始图像,得到平滑后的图像。

4.显示原始图像和平滑后的图像:```matlab%显示原始图像subplot(1,2,1);imshow(img);title('原始图像');%显示平滑后的图像subplot(1,2,2);imshow(smoothed_img);title('邻域平均法平滑后的图像');```这段代码将原始图像和经过邻域平均法平滑处理后的图像进行了对比显示。

5.调整参数:根据实际情况,你可能需要调整滤波器的大小以及其他参数,以获得最佳的平滑效果。

请注意,邻域平均法是一种简单的平滑方法,适用于一些简单的降噪需求。

在实际应用中,还有其他更复杂的滤波器和方法,可以根据具体情况选择。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字图像处理
实验报告
实验三邻域平均法滤波
学号
姓名
实验三邻域平均法滤波
一、实验内容
选取噪声较明显的图像,分别采用3*3、5*5、7*7的模板进行邻域平均法滤波,并比较滤波效果。

二、实验步骤
1、设计思想或者流程图。

邻域平均法的思想是用像素及其指定邻域内像素的平均值或加权平均值作为该像素的新值,以便去除突变的像素点,从而滤除一定的噪声。

邻域平均法的数学含义可用下式表示:
mn
i i
mn
i i
i w z w y x g 11
),((1)
上式中:i z 是以),(y x 为中心的邻域像素值;
i w 是对每个邻域像素的加权系数或模板系数;
mn 是加权系数的个数或称为模板大小。

邻域平均法中常用的模
板是:11111
1111
91Box T (2)
为了解决邻域平均法造成的图像模糊问题,采用阈值法(又叫做超限邻域平均法,如果某个像素的灰度值大于其邻域像素的平均值,且达到一定水平,则判断该像素为噪声,继而用邻域像素的均值取代这一像素值;否则,认为该像素不是噪声点,不予取代),给定阈值
0T :00),(),(),(),()
,(),(),(T y x g y x f y x g T y x g y x f y x f y x h (3)
(3)式中,),(y x f 是原始含噪声图像,),(y x g 是由(1)式计算的平均值,),(y x h 滤波后的像素值。

2、源程序并附上注释。

3、
A=imread('1.jpg');
B=rgb2gray(A);
figure; imshow(B); title('原始图象');
H=imnoise(B,'gaussian');
figure; imshow(H); title('高斯噪声');
Q=imnoise(B,'salt & pepper');
figure; imshow(Q); title('椒盐噪声');
M=fspecial('average',3*3);
E=imfilter(Q,M);
figure; imshow(E); title('3*3平均模板'); N=fspecial('average',5*5);
K=imfilter(Q,N);
figure; imshow(K); title('5*5平均模板'); Z=fspecial('average',7*7);
J=imfilter(Q,Z);
figure; imshow(J); title('7*7平均模板');
4、程序运行结果比较。

原始图像
椒盐噪声高斯噪声
5*5平均模板
从实验所得到的图片来看:邻域平均法实现很方便,适于消除图像中的颗粒
噪声,但需要指出这种方法既平滑了图像信号,同时使图像的细节部分变得模糊。

由以上处理后的图像可以看到:邻域平均法消弱了图像的边缘,使图像变得有些模糊。

均值滤波对高斯噪声的抑制是比较好的,但对椒盐噪声的抑制作用不好,
椒盐噪声仍然存在,只不过被削弱了而已。

5、实验体会。

通过本次实验,我知道了邻域平均法是空域处理方法,是一种利用Box模板对图像进行模板操作的图像平滑方法。

它是通过一点和邻域内像素点求平均来去除突变的像素点,从而滤掉一定的噪声,算法简单,计算速度快,但其代价是
会造成图像一定程度上的模糊。

同时我也熟悉了Matlab软件的运用,将理论知识实践化,使自己知识体系更加系统化。

相关文档
最新文档