数字图像处理实验报告22380_第1页
数字图像处理实验报告22380_第2页
数字图像处理实验报告22380_第3页
数字图像处理实验报告22380_第4页
数字图像处理实验报告22380_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

数字图像处理实验报告学院:班级:学号:姓名:数字图像处理实验报告第一题:应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换。解:(1)彩色图像转换为灰度图像,索引图像,二值图像A=imread('Sev彩色.bmp');%读取彩色图像B=rgb2gray(A);%彩色图像转换为灰度图像[C,map]=rgb2ind(A,256);%彩色图像转换为索引图像D=im2bw(A);%彩色图像转换为二值图像subplot(221);imshow(A);title('彩色图像');%显示图像subplot(222);imshow(B);title('灰度图像');subplot(223);imshow(C);title('索引图像');subplot(224);imshow(D);title('二值图像');(2)灰度图像转换为索引图像,二值图像A=imread('Sev彩色.bmp');%读取彩色图像B=rgb2gray(A);%彩色图像转换为灰度图像[C,map]=gray2ind(B,150);%灰度图像转换为索引图像D=im2bw(B);%灰度图像转换为二值图像subplot(131);imshow(B);title('灰度图像');%显示图像subplot(132);imshow(C);title('索引图像');subplot(133);imshow(D);title('二值图像');(3)索引图像转换为灰度图像,二值图像,灰度图像,彩色图像A=imread('Sev彩色.bmp');%读取彩色图像[B,map]=rgb2ind(A,150);%彩色图像转换为索引图像C=ind2gray(B,map);%索引图像转换为灰度图像D=im2bw(B,map,0.5);%索引图像转换为二值图像RGB=ind2rgb(B,map);%索引图像转换为彩色图像subplot(221);imshow(B);title('索引图像');subplot(222);imshow(C);title('灰度图像');subplot(223);imshow(D);title('二值图像');subplot(224);imshow(RGB);title('彩色图像');第二题:应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。然后将它们进行逆变换,观察逆变换后的图像;解:傅里叶变换A=imread('Sev彩色.bmp');B=rgb2gray(A);%将原图像转换为灰度图像F=fftshift(fft2(B));%进行快速傅里叶变换并对结果进行转换subplot(221);imshow(A);title('原图像'); %原图像subplot(222);imshow(B);title('灰度图像'); %灰度图像subplot(223);imshow(F);title('FFT变换'); %FFT变换后subplot(224);imshow(log(abs(F)),[]);title('FFT变换频谱'); %FFT变换频谱(2)傅里叶逆变换F1=ifft2(F);%求傅里叶变换逆变换subplot(121);imshow(F);title('FFT变换');%傅里叶变换图像subplot(122);imshow(F1);title('FFT逆变换');%傅里叶逆变换图像(3)离散余弦变换

A=imread('Sev彩色.bmp');B=rgb2gray(A);%将原图像转换为灰度图像D=dct2(B);%对原图像进行离散余弦变换subplot(221);imshow(A);title('原图像');%原图像subplot(222);imshow(B);title('灰度图像');%灰度图像subplot(223);imshow(D);title('离散余弦变换');%离散余弦变换图像subplot(224);imshow(log(abs(D)),[]);%求离散余弦变换频谱并绘图title('离散余弦变换频谱');(4)离散余弦逆变换D1=idct2(D);%求离散余弦变换逆变换subplot(121);imshow(D);title('离散余弦变换');%离散余弦变换图像subplot(122);imshow(D1,[0255]);title('离散余弦逆变换');%离散余弦逆变换图像第三题:应用MATLAB语言编程来实现一幅图像的增强。(1)取一幅灰度图像,对其进行线性点运算,即取(α,β)分别为(1.5,1.2)、(0.7,1.2),对原图像进行线性处理,观察处理后的结果,并分析直方图的变化。(2)取一幅灰度图像,对其进行直方图均衡化处理,再对其进行规定化处理,并对结果进行分析。解:第一问:(1)处理前源图像及其直方图A=imread('Sev彩色.bmp');B=rgb2gray(A);%将原图像转换为灰度图像subplot(121);imshow(B);title('原图像')%绘制原图像subplot(122);imhist(B)title('源图像直方图')%绘制原图像直方图(2)(α,β)取值为(1.5,1.2)I=1.5*B+1.2;%对原图像进行线性变换subplot(121);imshow(I);%显示变换后图像subplot(122);imhist(I)%显示变换后直方图(3)(α,β)取值为(0.7,1.2)I=0.7*B+1.2;%对原图像进行线性变换subplot(121);imshow(I);%显示变换后图像subplot(122);imhist(I)%显示变换后直方图分析:a=0.7时,图像对比度减小,输出灰度值范围减小a=1.5时,图像对比度增大,输出灰度值范围增大

第二问:(1)均衡化A=imread('Sev彩色.bmp');B=rgb2gray(A);%将原图像转换为灰度图像I=histeq(B);%对图像进行均衡化处理subplot(121);imshow(I);%绘制均衡化后图像subplot(122);imhist(I)%绘制均衡化图像的直方图(2)规定化A=imread('Sev彩色.bmp');B=rgb2gray(A);%将原图像转换为灰度图像[m,n]=size(B);%取得图像大小fori=1:8:257counts(i)=i;%取得逐渐递增的灰度级endI1=histeq(B,counts);%图像均衡化后的灰度级有counts个%即为图像规定化subplot(121);imshow(I1);%规定化图像subplot(122);imhist(I1);%规定化后的直方图axis([028005500])%规定图像坐标轴范围分析:图像均衡化将一已知灰度概率密度分布的图像经过某种变换,变成一幅具有均匀灰度概率密度分布的新图像。其结果扩展了像元取值的动态范围,从而达到了增强图像整体对比度的效果。直方图规定化能自动增强整个图像的对比度,但它的具体增强效果不易控制,处理的结果总是得到全局的均衡化直方图。思考题:如果将一幅图像进行一次直方图均衡化处理后,再进行一次直方图均衡化处理,结果会发生变化吗?观察两次均衡化的直方图是否一样。解:将上一问中均衡化后的图像I在进行一次均衡化A=imread('Sev彩色.bmp');B=rgb2gray(A);I=histeq(B);%第一次均衡化I1=histeq(I);%第二次均衡化subplot(121);imshow(I1);subplot(122);imhist(I1)结论:与第二问中均衡化结果相比较,两个结果相同,两次均衡化的直方图一样。(3)取一幅灰度图像,加入噪声后对其进行平滑滤波(均值滤波、中值滤波),并观察不同滤波方式下的效果。解:(1)给原图像中添加椒盐噪声A=imread('Sev彩色.bmp');B=rgb2gray(A);J=imnoise(B,'salt&pepper',0.03);%给原图像中添加椒盐噪声subplot(121);imshow(B);title('原图像');subplot(122);imshow(J);title('添加椒盐噪声图像')(2)均值滤波A=imread('Sev彩色.bmp');B=rgb2gray(A);J=imnoise(B,'salt&pepper',0.03);%给原图像中添加椒盐噪声subplot(231),imshow(B);title('原图像');subplot(232),imshow(J);title('添加椒盐噪声图像');f1=filter2(fspecial('average',5),J); %5*5模板均值滤波f2=filter2(fspecial('average',7),J); %7*7模板均值滤波f3=filter2(fspecial('average',9),J); %9*9模板均值滤波f4=filter2(fspecial('average',11),J); %11*11模板均值滤波subplot(233),imshow(uint8(f1));title('5*5模板均值滤波');subplot(234),imshow(uint8(f2));title('7*7模板均值滤波');subplot(235),imshow(uint8(f3));title('9*9模板均值滤波');subplot(236),imshow(uint8(f4));title('11*11模板均值滤波');(3)中值滤波A=imread('Sev彩色.bmp');B=rgb2gray(A);J=imnoise(B,'salt&pepper',0.03);%给原图像中添加椒盐噪声subplot(231),imshow(B);title('原图像');subplot(232),imshow(J);title('添加椒盐噪声图像');f1=medfilt2(J,[55]);%medfilt2默认3*3,5*5模板中值滤波f2=medfilt2(J,[77]);%medfilt2默认3*3,7*7模板中值滤波f3=medfilt2(J,[99]);%medfilt2默认3*3,9*9模板中值滤波f4=medfilt2(J,[1111]);%medfilt2默认3*3,11*11模板中值滤波subplot(233),imshow(uint8(f1));title('5*5模板中值滤波');subplot(234),imshow(uint8(f2));title('7*7模板中值滤波');subplot(235),imshow(uint8(f3));title('9*9模板中值滤波');subplot(236),imshow(uint8(f4));title('11*11模板中值滤波');分析:均值滤波效果与所使用邻域半径大小有关,半径越大,像素点越多,则信噪比提高越大,平滑效果越好,但是平滑图像的模糊程度越大。中值滤波是一种非线性滤波,可以克服线型滤波器所带来的图像细节模糊,对滤波脉冲干扰及颗粒噪声最为有效。(4)取一幅灰度图像,采用不同的算子对其进行边缘锐化,并分析结果。解:A=imread('Sev彩色.bmp');B=rgb2gray(A);h1=fspecial('sobel'); %用sobel算子进行边缘锐化f1=filter2(h1,B);h2=fspecial('prewitt'); %用prewitt算子进行边缘锐化f2=filter2(h2,B);h3=fspecial('laplacian'); %用laplacian算子进行边缘锐化f3=filter2(h3,B);subplot(221);imshow(B,[]);title('原始图像');subplot(222);imshow(f1,[]);title('sobel算子');subplot(223);imshow(f2,[]);title('prewitt算子');subplot(224);imshow(f3,[]);title('laplacian算子');分析:sobel算子:对称的一阶差分,对中心加权具有一定的平滑作用Prewitt算子:一种一阶微分算子的边缘检测,利用像素点上下、左右邻点的灰度差,在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。Laplacian算子:二次微分算子,满足不同走向的图像边缘锐化要求,对噪声的增强作用较弱,一半用它进行边缘增强时,有必要将图像先进性平滑处理。思考题:为了达到边缘锐化的反差增强效果,实际应用中将高频增强和直方图均衡化结合起来使用,这两个操作的次序能互换吗?效果一样吗?解:>>I=imread('Sev彩色.bmp');I=rgb2gray(I);subplot(241),imshow(I);title('原始图像');ll=[0,-1,0;-1,5,-1;0,-1,0];I3=imfilter(I,ll);subplot(242),imshow(uint8(I3));title('拉普拉斯算子锐化图像');h=ones(size(I3));[f1,f2]=freqspace(size(I3),'meshgrid');r=sqrt(f1.^2+f2.^2);h(r<0.3)=0;Y=fft2(double(I3));Y=fftshift(Y);y=Y.*h;y=ifftshift(y);I4=ifft2(y);subplot(243),imshow(uint8(I4));title('高频增强图像');I5=histeq(I4);subplot(244),imshow(I5);title('均衡化图像');P=imread('Sev彩色.bmp');P=rgb2gray(P);subplot(245),imshow(P);title('原始图像');ii=[0,-1,0;-1,5,-1;0,-1,0];P1=imfilter(P,ll);subplot(246),imshow(uint8(P1));title('拉普拉斯算子锐化图像');P2=histeq(P1);subplot(248),imshow(P2);title('均衡化图像');J=ones(size(P2));[f3,f4]=freqspace(size(P2),'meshgrid');r1=sqrt(f3.^2+f4.^2);J(r1<0.3)=0;Y=fft2(double(P2));Y=fftshift(Y);y=Y.*h;y=ifftshift(y);P3=ifft2(y);subplot(247),imshow(uint8(P3));title('高频增强图像');结论:不能互换,效果有差异第四题:对一幅灰度图像进行模糊处理,然后进行逆滤波、维纳滤波与约束最小二乘方滤波复原实验。解:(1)对原图像进行模糊处理A=imread('Sev彩色.bmp');B=rgb2gray(A);len=40; %设置运动位移为40个像素theta=45; %设置运动角度为45°FZ=fspecial('motion',len,theta); %建立二维仿真线性运动滤波器C=imfilter(B,FZ,'circular','conv'); %产生模糊图像subplot(121),imshow(B);title('原始图像');%显示图像subplot(122),imshow(C);title('模糊图像');(2)图像复原A=imread('Sev彩色.bmp');B=rgb2gray(A);len=40;%设置运动位移为40个像素theta=45;%设置运动角度为45°FZ=fspecial('motion',len,theta);C=imfilter(B,FZ,'circular','conv'); %产生模糊图像figure(1);subplot(121);imshow(B);title('原始图像');subplot(122);imshow(C);title('模糊图像');noise=imnoise(zeros(size(B)),'gaussian',0,0.001); %产生噪声noise=uint8(noise); %转换类型,便于运算CN=C+noise; %运动模糊+高斯噪声图像MINNSR=sum(noise(:).^2)/sum(CN(:).^2); %计算性噪比f1=deconvwnr(C,FZ); %用逆滤波恢复图像f2=deconvwnr(C,FZ,NSR); %用维纳滤波恢复图像CN=double(CN); f3=deconvreg(CN,FZ,4); %用最小二乘方滤波恢复图像figure(2);subplot(131);imshow(f1);title('逆滤波恢复');subplot(132);imshow(f2);title('维纳滤波恢复');subplot(133);imshow(uint8(f3));title('最小二乘方滤波恢复');第五题:应用MATLAB语言编写实现一幅图像的旋转、剪切和缩放;解:A=imread('Sev彩色.bmp');B=rgb2gray(A);I=imrotate(B,-90); %图像旋转90°I1=imcrop(B,[2020100100]); %图像剪切I2=imresize(B,0.5,'nearest'); %图像缩小0.5倍I3=imresize(B,1.5,'bilinear'); %图像放大1.5倍figure(1);imshow(B);title('原始图像');figure(2);subplot

温馨提示

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

评论

0/150

提交评论