四点平滑、八点平滑、中值滤波、直方图均匀化、线变换.doc_第1页
四点平滑、八点平滑、中值滤波、直方图均匀化、线变换.doc_第2页
四点平滑、八点平滑、中值滤波、直方图均匀化、线变换.doc_第3页
四点平滑、八点平滑、中值滤波、直方图均匀化、线变换.doc_第4页
四点平滑、八点平滑、中值滤波、直方图均匀化、线变换.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像上机报告一、 实验内容:四点平滑、八点平滑、中值滤波、直方图均匀化、线性变换二、 实验目的:1、四点平滑、八点平滑:去除高斯噪声,使图像平滑,缺点是会使图像模糊,模糊程度与领域半径成正比丢失边沿。2、中值滤波:去除图像中的椒盐噪声,平滑图像,同样会使图像模糊,丢失边缘。三、 编程思想:1、四点平滑:f(i, j) 表示(i, j)点的实际灰度值g(i, j) 变换后输出图象(i, j)点的实际灰度值以(i, j)点为中心取其上下左右四个像素点的灰度值和点(i, j)取平均,将均值赋给g(i, j)作为输出灰度值。2、八点平滑:f(i, j) 表示(i, j)点的实际灰度值g(i, j) 变换后输出图象(i, j)点的实际灰度值 以(i, j)点为中心取一个NN的窗口(N = 3,5,7,八点滤波时N=3),窗口内象素组成的点集以A来表示,经邻域平均法滤波后,平滑后g(i, j)的值为九个像素点的灰度值值和。3、中值滤波:取以(i, j)点为中心取一个NN的窗口(N = 3,5,7,),对窗口内的所有像素点的像素值进行排序,去中值作为该点的输出灰度值。取合理的邻近像素值来替代噪声点,所以只适合于椒盐噪声的去除(去椒盐噪声比超限像素平均分更有效),不适合高斯噪声的去除。在滤除随机噪声时,中值滤波要比均值滤波效果弱。四、 代码及实现效果1、 四点平滑:代码:clearclose allh=imread(che.jpg); %读入彩色图片c=rgb2gray(h); %把彩色图片转化成灰度图片,256级figure,imshow(c),title(原始图象); %显示原始图象g=imnoise(c,gaussian,0.01,0.002); %加入高斯噪声figure,imshow(g),title(加入高斯噪声之后的图象); p=size(g); %输入图像是pq的,且pn,qnx1=double(g);x2=x1;for i=2:p(1)-2 for j=2:p(2)-2 %c=x1(i:i+(n-1),j:j+(n-1).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘 s=x1(i,j)+x1(i-1,j)+x1(i+1,j)+x1(i,j+1)+x1(i,j-1); %求c矩阵(即模板)中各元素之和 x2(i,j)=s/5; %将模板各元素的均值赋给模板中心位置的元素 endend%未被赋值的元素取原值d=uint8(x2);figure,imshow(d),title(滤波后); 2、 八点平滑:代码:clearclose allh=imread(che.jpg); %读入彩色图片c=rgb2gray(h); %把彩色图片转化成灰度图片,256级figure,imshow(c),title(原始图象); %显示原始图象g=imnoise(c,gaussian,0.01,0.002); %加入高斯噪声figure,imshow(g),title(加入高斯噪声之后的图象); n=input(请输入均值滤波器模板大小n);a(1:n,1:n)=1; %a即nn模板,元素全是1p=size(g); %输入图像是pq的,且pn,qnx1=double(g);x2=x1;for i=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1).*a; %取出x1中从(i,j)开始的n行n列元素与模板相乘 s=sum(sum(c); %求c矩阵(即模板)中各元素之和 x2(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %将模板各元素的均值赋给模板中心位置的元素 endendd=uint8(x2);figure,imshow(d),title(滤波后); 3、 中值滤波代码:clearclose allh=imread(che.jpg); %读入彩色图片c=rgb2gray(h); %把彩色图片转化成灰度图片,256级figure,imshow(c),title(原始图象); %显示原始图象g=imnoise(c,salt & pepper,0.04);%加椒盐噪声figure,imshow(g),title(加入高斯噪声之后的图象); n=input(请输入均值滤波器模板大小n);a(1:n,1:n)=1; %a即nn模板,元素全是1p=size(g); %输入图像是pq的,且pn,qnx1=double(g);x2=x1;for i=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1); %取出x1中从(i,j)开始的n行n列元素,即模板(nn的) e=c(1,:); %是c矩阵的第一行 for u=2:n e=e,c(u,:); %将c矩阵变为一个行矩阵 end mm=median(e); %mm是中值 x2(i+(n-1)/2,j+(n-1)/2)=mm; %将模板各元素的中值赋给模板中心位置的元素 endend d=uint8(x2);figure,imshow(d),title(滤波后); 4、直方图均匀化代码:clear all;a=imread(D:/lina.jpg);m,n=size(a); b=zeros(1,256); for i=1:m for j=1:n k=a(i,j)+1; %k可能为0,矩阵从一开始,故此处加一,0255变1256 b(k)=b(k)+1; %循环计算每级灰度出现次数 end endb=b/(m*n); %概率 figure,bar(0:255,b,y) % 直方图title(原图像直方图)xlabel(灰度值)ylabel(出现概率)c=zeros(1,256);for i=1:256 for j=1:i c(i)=b(j)+c(i); endendd=round(c*256)+0.5); % 归到相近级的灰度for i=1:256e(i)=sum(b(find(d=i); % 计算现有每个灰度级出现的概率end,find函数返回d中所有为i的横坐标索引值figure,bar(0:255,e,b)title(均衡化后的直方图)xlabel(灰度值)ylabel(出现概率)将图像界面放大竟出现了颜色黄色和蓝色。为了增加我组竞争力,提高分数,本人又做了迭代法clear allI=imread(D:/lina.jpg);s=size(I);a=I(1,1);for i=1:s(1) for j=1:s(2) if(a=th;%将图像分为两部分 g2=I=1; th=thnew;endth=floor(th);J=im2bw(I,th/255);subplot(1,2,1);imshow(I);title(原始图像);str=迭代算法 TH=,num2str(th);subplot(1,2,2);imshow(J);title(str);自认为这个还是挺成功的。5、线性变换代码:clear all;a=imread(D:/lina.jpg);m,n=size(a); b=zeros(1,256); for i=1:m for j=1:n k=a(i,j)+1; %k可能为0,矩阵从一开始,故此处加一,0255变1256 b(k)=b(k)+1; %循环计算每级灰度出现次数 end endx=b;for i=1:100 x(i)=20; endfor i=101:208 x(i)=20+10/107*(x(i)-20);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论