Matlab图像处理实验指导书(1-6)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

河南工业大学《数字图像处理》课程实验指导书信息科学与工程学院2011年3月河南工业大学《数字图像处理》课程实验指导书1实验一Matlab图像显示方法一、实验目的1.了解Matlab的基本功能及操作方法2.练习图像读写和显示函数的使用方法3.掌握Matlab支持的五类图像的显示方法二、实验内容1.图像的读写%matlab自带图像在安装路径下\toolbox\images\imdemosA)图像读RGB=imread('ngc6543a.jpg');B)图像写先从一个.mat文件中载入一幅图像,然后利用图像写函数imwrite,创建一个.bmp文件,并将图像存入其中。loadclownwhosimwrite(X,map,'clown.bmp')C)图像文件格式转换bitmap=imread('clown.bmp','bmp');imwrite(bitmap,'clown.png','png');2.图像显示A)二进制图像的显示BW1=zeros(20,20);%创建仅包含0/1的双精度图像BW1(2:2:18,2:2:18)=1;imshow(BW1,'notruesize');%double类型[0,1]whosBW2=uint8(BW1);figure,imshow(BW2,'notruesize')figure,imshow(BW2,[],'notruesize')%uint8类型[0,255]BW3=BW2~=0;%逻辑标志置为onfigure,imshow(BW3,'notruesize')whos河南工业大学《数字图像处理》课程实验指导书2B)灰度图像的显示I=imread('spine.tif');J=filter2([12;-1-2],I);imshow(I,[])figure,imshow(J,[])C)索引图像的显示loadclown%装载一幅图像imwrite(X,map,'clown.bmp');%保存为bmp文件imshow(X)imshow(X,map)D)RGB图像的显示I=imread('trees.tif');imshow(I)RGB=imread('ngc6543a.jpg');figure,imshow(RGB)imshow(RGB(:,:,3))%显示第3个颜色分量E)多帧图像的显示mri=uint8(zeros(128,128,1,27));%27帧文件mri.tif初始化forframe=1:27[mri(:,:,:,frame),map]=imread('mri.tif',frame);%读入每一帧endfigure;imshow(mri(:,:,:,3),map);%显示第3帧figure,imshow(mri(:,:,:,6),map);%显示第6帧figure,imshow(mri(:,:,:,10),map);%显示第10帧figure,imshow(mri(:,:,:,20),map);%显示第20帧figure;holdon;forframe=1:27holdon;imshow(mri(:,:,:,frame),map);%读入每一帧pause(0.1)endF)显示多幅图像河南工业大学《数字图像处理》课程实验指导书3[X1,map1]=imread('forest.tif');[X2,map2]=imread('trees.tif');figure;subplot(1,2,1),imshow(X1,map1)subplot(1,2,2),imshow(X2,map2)figure;subplot(1,2,1),subimage(X1,map1)subplot(1,2,2),subimage(X2,map2)三、思考题:1.图像显示时,若不带参数’notruesize’,显示效果如何?2.如何显示RGB图像的某一个颜色分量?3.如何显示多帧图像的所有帧?如何根据多帧图像创建电影片段?%pause(n)河南工业大学《数字图像处理》课程实验指导书4实验二图像运算一、实验目的1.熟悉图像点运算和代数运算的实现方法2.了解图像几何运算的简单应用3.了解图像的邻域操作二、实验内容1.图像点运算读入图像‘rice.png’,通过图像点运算改变对比度。rice=imread('rice.png');subplot(131),imshow(rice)I=double(rice);%转换为双精度类型J=I*0.43+60;rice2=uint8(J);%转换为uint8subplot(132),imshow(rice2)J=I*1.5-60;rice3=uint8(J);%转换为uint8subplot(133),imshow(rice3)2.图像的代数运算A)图像加法运算I=imread('rice.png');imshow(I)J=imread('cameraman.tif');figure,imshow(J)K=imadd(I,J);figure,imshow(K)K2=imadd(I,J,'uint16');figure,imshow(K2,[])RGB=imread('trees.tif');RGB2=imadd(RGB,50);imshow(RGB)figure,imshow(RGB2)河南工业大学《数字图像处理》课程实验指导书5RGB3=imadd(RGB,100);figure,imshow(RGB3)B)图像减法运算I=imread('rice.png');imshow(I)background=imopen(I,strel('disk',15));%估计背景图像figure,imshow(background);I2=imsubtract(I,background);%从原始图像中减去背景图像figure,imshow(I2)C)图像乘法运算I=imread('moon.tif');J=immultiply(I,1.2);K=immultiply(I,0.5);imshow(I)figure,imshow(J)figure,imshow(K)D)*图像除法运算3.图像的几何运算A)改变图像的大小读入图像‘ic.tif’,改变图像大小,分别将原图像放大1.5倍和缩小0.5倍。I=imread('pears.png');J=imresize(I,1.25);K=imresize(I,0.8);imshow(I)figure,imshow(J)figure,imshow(K)Y=imresize(I,[100,150]);figure,imshow(Y)B)旋转一幅图像将上述图像顺时针和逆时针旋转任意角度,观察显示效果。I=imread('peppers.png');河南工业大学《数字图像处理》课程实验指导书6J=imrotate(I,30,'bilinear');J1=imrotate(I,30,'bilinear','crop');imshow(I)figure,imshow(J)figure,imshow(J1)J2=imrotate(I,-15,'bilinear');figure,imshow(J2)C)图像剪切通过交互式操作,从一幅图像中剪切一个矩形区域。I=imread('peppers.png');figure;imshow(I);I2=imcrop(I,[3060120160]);figure,imshow(I2)4.*图像的邻域操作读入图像‘tire.tif’,分别使用函数nlfilter和blkproc对图像进行滑动邻域操作和分离邻域操作。I=imread('tire.tif');f=inline('max(x(:))');%构造复合函数I2=nlfilter(I,[33],f);%滑动邻域操作figure;imshow(I)figure,imshow(I2)I=imread('tire.tif');f=inline('uint8(round(mean2(x)*ones(size(x))))');%构造复合函数I2=blkproc(I,[88],f);%分离邻域操作figure;imshow(I)figure,imshow(I2)河南工业大学《数字图像处理》课程实验指导书7实验三图像变换一、实验目的1.了解傅立叶变换及离散余弦变换在图像处理中的应用二、实验内容1.傅立叶变换A)绘制一个二值图像矩阵,并将其傅立叶函数可视化。f=zeros(30,30);f(5:24,13:17)=1;figure;imshow(f,'notruesize')F=fft2(f);F2=log(abs(F));figure,imshow(F2,[-15],'notruesize');colormap(jet);F=fft2(f,256,256);%零填充为256×256矩阵figure,imshow(log(abs(F)),[-15],'notruesize');colormap(jet);F2=fftshift(F);%将图像频谱中心由矩阵原点移至矩阵中心figure,imshow(log(abs(F2)),[-15],'notruesize');colormap(jet);B)利用傅立叶变换分析两幅图像的相关性,定位图像特征。读入图像‘cameraman.tif’,抽取其中的字母‘a’。bw=imread('cameraman.tif');a=bw(59:71,81:91);figure;imshow(bw);figure,imshow(a);C=real(ifft2(fft2(bw).*fft2(rot90(a,2),256,256)));%求相关性figure,imshow(C,[]);thresh=max(C(:));figure,imshow(Cthresh-10)figure,imshow(Cthresh-15)2.离散余弦变换(DCT)A)使用dct2对图像‘autumn.tif’进行DCT变换。RGB=imread('autumn.tif');河南工业大学《数字图像处理》课程实验指导书8figure;imshow(RGB)I=rgb2gray(RGB);%转换为灰度图像figure,imshow(I)J=dct2(I);figure,imshow(log(abs(J)),[]),colormap(jet(64));colorbar;B)将上述DCT变换结果中绝对值小于10的系数舍弃,使用idct2重构图像并与原图像比较。RGB=imread('autumn.tif');I=rgb2gray(RGB);%转换为灰度图像J=dct2(I);figure,imshow(I)K=idct2(J);figure,imshow(K,[0255])J(abs(J)10)=0;%舍弃系数K2=idct2(J);figure,imshow(K2,[0255])C)利用DCT变换进行图像压缩。I=imread('cameraman.tif');I=im2double(I);T=dctmtx(8);B=blkproc(I,[8,8],'P1*x*P2',T,T');mask=[1111000011100000110000001000000000000000000000000000000000000000];B2=blkproc(B,[88],'P1.*x',mask);I2=blkproc(B2,[88],'P1*x*P2',T',T);imshow(I)figure,imshow(I2)河南工业大学《数字图像处理》课程实验指导书9实验四图像增强与复原一、实验目的:1.了解灰度变换增强和空域滤波增强的Matlab实现方法2.掌握直方图灰度变换方法3.掌握噪声模拟和图像滤波函数的使用方法4.了解图像复原的Matlab实现方法二、实验内容1.灰度变换增强A)线段上像素灰度分布读入灰度图像‘liftingbody.png’,采用交互式操作,用improfile绘制

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功