matlab里面gtophat什么意思,Matlab图像处理实验指导书

1、首页 | 课程介绍 | 师资队伍 | 课程资源 | 网上教学 | 学习园地 | 在线自测 | 在线答疑 | 帮助 | 管理登陆 网上教学实验一、直方图处理与模板运算1、实验内容内容1:打开lenna.bmp图象:(1)指出其类型; (2)重命名为lenna1.bmp; (3)显示出直方图;(4)显示出累积直方图;(5)显示出直方图均衡结果;(6)计算负图,保存为lennan.jpg内容2:打开图象lenna_noise1.bmp:(1)用均值滤波其对其进行平滑处理;(2)选择不同尺寸的卷积核,查看其对结果的影响。(3)对平滑后的图像执行直方图均衡,查看其对结果的影响。(4)做习题3.18内容3。

2、:混合空间增强法是一种有效的方法,比单独采用其中任一种方法产生的效果好。现有图像pout.bmp, 其边缘及对比度度很差,请设计一种算法加以增强。注意各种方法组合的顺序。2、基本原理(1) 直方图与累积直方图直方图:直方图是灰度级的函数,描述的是图像中具有该灰度级的象素的个数:横坐标是灰度级,纵坐标是该灰度出现的频率(象素的个数)。用公式可表示为: ,其中 表示某个灰度级, 表示图像中具有 灰度级的象素的个数;其规一化就是概率密度函数(PDF): , 为灰度级数。而累积直方图是小于某个灰度级的象素个数: ,其规一化就是累积分布函数(CDF)。(2) 直方图均衡直方图均衡是希望输出图像的每一灰度。

3、级都有相同的象素点(即输出的直方图是平的)而进行的灰度级变换,其变换函数就是其CDF。离散情况的实现步骤为:a、计算输入图像的CDFb、输出最大灰度值乘以CDFc、对结果b进行量化因为这是近似实现,请注意输出图像的直方图的特点。(3) 邻域处理邻域(局部)处理是空间滤波的基础,是一个被称为掩模、核、模板或窗口的子图像在待处理图像中逐点移动,在每一点处,滤波器在该点的响应通过事先定义的关系计算,如下图:输出图像 在坐标 的值计算为:3、相关的Matlab函数imread,imwrite:图像读写iminfo:图像信息imshow:图像显示imhist:图像直方图histeq:直方图均衡fspec。

4、ial:产生卷积滤波器conv2:二维卷积滤波mat2gray:将矩阵转换为图像im2double:将图像转换为双精度类型实验二、图像空间域复原1、实验内容内容1:打开brain.bmp图像:(1)估计噪声(提示:mri图像中的噪声一般认为是Gaussian的。先选择一个感兴趣区域,然后估计它的均值和方差,见书p.182); (2)选择一种最适当的滤波器进行滤波,并将结果保存为debrain.jpg;并说明你选择的理由。 内容2:打开图像debrain.jpg,对其添加噪声亮度为0.25的salt & pepper,用自适应中值滤波器(7*7)进行滤波2、基本原理a) 估计噪声估计噪声的方法很。

5、多,这里参考的方法是教材p.182提示的方法,即:选择一个感兴趣区域,然后估计它的均值和方差。书中列举了许多噪声空间滤波器:均值滤波器(算术均值、几何均值、谐波均值和逆谐波均值)和顺序统计滤器(中值、最大最小、中点和修正后的阿尔法均值),而对于含Gaussian型噪声的mri图像使用谐波均值最好。b) 自适应中值滤波器(参考教材P192)3、相关的Matlab函数fspecial:产生滤波器imfilter:图像滤波filter2:二维滤波mean:均值median:中值max:最大值min:最小值imnoise:添加噪声medfilt2:二维中值滤波实验三、几何变换1、实验内容内容:编写用双。

6、线性插值进行几何变换的函数:out = TranLinear (In, /输入图像sx, /x方向缩放比例sy , /y方向缩放比例theta,/旋转角度x,y,/缩放基点)2、基本原理a) 插值插值:确定非整数位置象素值的过程。如下图所示, 处的值 用插值来求。实现方法采用逆映射。最近邻域插值:输出象素的灰度值等于离它所映射到的位置最近的输入图像的灰度值。如上图,如果点 离 最近,则 。该方法的特点是速度快,但结果图像带有锯齿边。广泛应用的是双线性插值,如上图,求 值的过程如下:b) 几何变换1)、简单平移:输出 输入2)、简单缩放:输出 输入3)、简单旋转:输出 输入4)、绕基准点的缩放平。

7、移()缩放平移(),即:输出 输入5)、绕基准点的旋转平移()旋转平移(),即:输出 输入3、相关的Matlab函数TFORM:空间变换结构体immakeform:建立空间变换结构体imtransform:空间变换imresize:改变图像大小imrotate:图像旋转imcrop:图像剪切实验四、阈值分割及形态学处理1、实验内容内容(算法设计):打开head.bmp图像,请你实现一种算法以去除脑的外围组织,如图brain.bmp。提示:(1)进行阈值分割(p.485); (2)选择适当大小的核对(1)的结果进行开运算。(3)对(2)的结果进行最大连通成分提取。(4)将结果(3)与原图进行与运。

8、算可得最终结果。2、基本原理为了提取大脑,观察MRI脑图可以看出它由一个重要的特征,如下图,就是大脑与它周围的组织之间是由低亮度的细小的结构连接起来的,如果将这些连接断开,并假设大脑是最大的连通成份,那么用最大连通成分分析就可分离出大脑。其基本步骤可概括为:(1)进行阈值分割(p.485); (2)选择适当大小的核对(1)的结果进行开运算。(3)对(2)的结果进行最大连通成分提取。(4)将结果(3)与原图进行与运算可得最终结果。在这一算法中所采用的主要算法有:a) 试探法阈值选择算法1、择一个T的初始估计值2、分割图像。这样做会生成两组象素:G1由所有灰度值大于T的象素组成,而G2由所有灰度值。

9、小于或等于T的象素组成3、对区域G1和G2中的所有象素计算平均灰度值m1和m24、计算新的阈值:T(m1m2)/25、重复步骤2到4,直到逐次迭代所得的T值之差小于事先定义的误差。b) 形态学开运算形态学开运算一般是对象的轮廓变得光滑,断开狭窄的间断和消除细的突出物。本实验的目标是去除大脑的外围组织,采用开运算是合理的,就是让它去掉大脑与外围组织间的细小连接。注意的地方是核的大小选择。c) 最大连通成分分析二值图像中连通成份分析应用是自动图像分析中的核心任务。教材P435介绍了连通成份的提取算法,那么什么是最大连通成份分析呢?实际上取所有连通成份中象素最多的连通成份作为输出就是最大连通成份分析。

10、。因为我们假设大脑是其中的最大连通成份,因此对于开运算的结果要采用最大连通成分分析,就去掉了外围组织。3、 相关的Matlab函数graythresh:计算阈值im2bw:阈值分割imerode:形态学腐蚀imdilate:形态学膨胀imopen:形态学开运算imclose:形态学闭运算bwlabel:连通成份分析数字图像实验实验教材实验条件实验内容实验报告课堂教学课件Copyright 电子科技大学生命科学与技术学院版权所有 All Rights Reserved维护制作:生命科学与技术学院信息中心 Powerd By 冰点火焰郑 州 大 学 Matlab应用图像处理 课程实 验 指 导 书。

11、电气工程学院生物医学工程系2006年11月实验一 Matlab图像显示方法一、实验目的1. 了解Matlab的基本功能及操作方法2. 练习图像读写和显示函数的使用方法3. 掌握Matlab支持的五类图像的显示方法二、实验内容1. 图像的读写A) 图像读RGB = imread(ngc6543a.jpg);B) 图像写先从一个.mat 文件中载入一幅图像,然后利用图像写函数imwrite,创建一个.bmp文件,并将图像存入其中。load clownwhosimwrite(X,map,clown.bmp)C) 图像文件格式转换bitmap = imread(clown.bmp,bmp);imwri。

12、te(bitmap,clown.png,png);2. 图像显示A) 二进制图像的显示BW1=zeros(20,20);%创建仅包含0/1的双精度图像BW1(2:2:18,2:2:18)=1;imshow(BW1,notruesize);whosBW2=uint8(BW1);figure,imshow(BW2,notruesize)BW3=BW2=0; %逻辑标志置为onfigure,imshow(BW3,notruesize)whosBW=imread(circles.tif);imshow(BW);figure,imshow(BW);figure,imshow(BW,1 0 0;0 0 1。

13、);B) 灰度图像的显示I=imread(testpat1.tif);J=filter2(1 2;-1 -2,I);imshow(I)figure,imshow(J,)C) 索引图像的显示load clown %装载一幅图像imwrite(X,map,clown.bmp); %保存为bmp文件imshow(X)imshow(X,map)D) RGB图像的显示I=imread(flowers.tif);imshow(I)RGB=imread(ngc6543a.jpg);figure,imshow(RGB)imshow(I(:,:,3)% 显示第3个颜色分量E) 多帧图像的显示mri=uint8(。

14、zeros(128,128,1,27); % 27帧文件mri.tif初始化for frame=1:27mri(:,:,:,frame),map=imread(mri.tif,frame); % 读入每一帧endimshow(mri(:,:,:,3),map); % 显示第3帧figure,imshow(mri(:,:,:,6),map); % 显示第6帧figure,imshow(mri(:,:,:,10),map); % 显示第10帧figure,imshow(mri(:,:,:,20),map); % 显示第20帧F) 显示多幅图像X1,map1=imread(forest.tif);X。

15、2,map2=imread(trees.tif);subplot(1,2,1),imshow(X1,map1)subplot(1,2,2),imshow(X2,map2)subplot(1,2,1),subimage(X1,map1)subplot(1,2,2),subimage(X2,map2)三、思考题:1. 图像显示时,若不带参数notruesize,显示效果如何?2. 如何显示RGB图像的某一个颜色分量?3. 如何显示多帧图像的所有帧?如何根据多帧图像创建电影片段?实验二 图像运算一、实验目的1. 熟悉图像点运算和代数运算的实现方法2. 了解图像几何运算的简单应用3. 了解图像的邻域操。

16、作二、实验内容1. 图像点运算读入图像rice.tif,通过图像点运算改变对比度。rice=imread(rice.tif);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.tif);imshow(I)J=imread(camera。

17、man.tif);figure,imshow(J)K=imadd(I,J);figure,imshow(K)K2=imadd(I,J,uint16);figure,imshow(K2,)RGB=imread(flowers.tif);RGB2=imadd(RGB,50);imshow(RGB)figure,imshow(RGB2)RGB3=imadd(RGB,100);figure,imshow(RGB3)B) 图像减法运算I=imread(rice.tif);imshow(I)background = imopen(I,strel(disk,15); %估计背景图像figure, imsho。

18、w(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(ic.tif);J=imresize(I,1.25);K=imresize(I,。

19、0.8);imshow(I)figure,imshow(J)figure,imshow(K)Y=imresize(I,100,150);figure,imshow(Y)B) 旋转一幅图像将上述图像顺时针和逆时针旋转任意角度,观察显示效果。I=imread(ic.tif);J=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) 图像剪切通过交互式操作,从一幅图。

20、像中剪切一个矩形区域。I=imread(ic.tif);imshow(I);I1=imcrop;figure,imshow(I1)I2=imcrop(I,30 60 120 160);figure,imshow(I2)4. *图像的邻域操作读入图像tire.tif,分别使用函数nlfilter和blkproc对图像进行滑动邻域操作和分离邻域操作。I=imread(tire.tif);f=inline(max(x(:); %构造复合函数I2=nlfilter(I,3 3,f); %滑动邻域操作imshow(I)figure,imshow(I2)I=imread(tire.tif);f=inlin。

21、e(uint8(round(mean2(x)*ones(size(x); %构造复合函数I2=blkproc(I,8 8,f); %滑动邻域操作imshow(I)figure,imshow(I2)实验三 图像变换与滤波器设计一、实验目的1. 了解傅立叶变换、离散余弦变换及Radon变换在图像处理中的应用2. 了解Matlab线性滤波器的设计方法二、实验内容1. 傅立叶变换A) 绘制一个二值图像矩阵,并将其傅立叶函数可视化。f=zeros(30,30);f(5:24,13:17)=1;imshow(f,notruesize)F=fft2(f);F2=log(abs(F);figure,imsho。

22、w(F2,-1 5,notruesize);colormap(jet); F=fft2(f,256,256); %零填充为256256矩阵figure,imshow(log(abs(F),-1 5,notruesize);colormap(jet); F2=fftshift(F); %将图像频谱中心由矩阵原点移至矩阵中心figure,imshow(log(abs(F2),-1 5,notruesize);colormap(jet);B) 利用傅立叶变换分析两幅图像的相关性,定位图像特征。读入图像text.tif,抽取其中的字母a。bw=imread(text.tif);a=bw(59:71,8。

23、1:91);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);imshow(RGB)I=rgb2gray(RGB); %转换为灰度图像figure,imshow(I)J=dct2(I);。

24、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,0 255)J(abs(J) 直方图显示读入图像rice.tif,在一个窗口中显示灰度级n=64,128和256的图像直方图。I=imread(rice.tif);imshow(I)figure,im。

25、hist(I,64)figure,imhist(I,128)直方图灰度调节利用函数imadjust调解图像灰度范围,观察变换后的图像及其直方图的变化。I=imread(rice.tif);imshow(I)figure,imhist(I)J=imadjust(I,0.15 0.9,0 1);figure,imhist(J)figure,imshow(J)I=imread(cameraman.tif);imshow(I)figure,imhist(I)J=imadjust(I,0 0.2,0.5 1);figure,imhist(J)figure,imshow(J)直方图均衡化分别对图像pout。

26、.tif和tire.tif进行直方图均衡化处理,比较处理前后图像及直方图分布的变化。I=imread(pout.tif);imshow(I)figure,imhist(I)J=histeq(I);figure,imhist(J)figure,imshow(J)I=imread(tire.tif);imshow(I)figure,imhist(I)J=histeq(I);figure,imshow(J)figure,imhist(J)1. 空域滤波增强A) 噪声模拟利用函数imnoise给图像eight.tif分别添加高斯(gaussian)噪声和椒盐(salt & pepper)噪声。I=im。

27、read(eight.tif);imshow(I)I1=imnoise(I,gaussian,0,0.01);figure,imshow(I1)I2=imnoise(I,salt & pepper);figure,imshow(I2)B) 空域滤波对上述噪声图像进行均值滤波和中值滤波,比较滤波效果。I=imread(eight.tif);J=imnoise(I,salt & pepper,0.02);imshow(J)K1=medfilt2(J,3 3); % 3*3中值滤波figure,imshow(K1)K2=filter2(fspecial(average,5),J)/255;figur。

28、e,imshow(K2)总结均值滤波和中值滤波的特点及使用场合。均值滤波器是一种最常用的线性低通平滑滤波器。可抑制图像中的噪声,但同时也使图像变得模糊中值滤波器是一种最常用的非线性平滑滤波器。可消除图像中孤立的噪声点,又可产生较少的模糊*对图像saturn.tif采用laplacian高通滤波器进行锐化滤波。I=imread(saturn.tif);imshow(I)h=fspecial(laplacian); I2=filter2(h,I);figure,imshow(I2)2. 图像复原A) 模糊与噪声对图像flowers.tif分别采用运动PSF和均值滤波PSF进行模糊。I=imread。

29、(flowers.tif);I=I(10+1:256,222+1:256,:); %剪切图像imshow(I)len=30; %运动位移 theta=10; %运动角度PSF=fspecial(motion,len,theta);blurred=imfilter(I,PSP,circular,conv);figure,imshow(blurred)I=imread(flowers.tif);imshow(I) H=fspecial(motion,50,45); %运动PSPmotiοnblur=imfilter(I,H);figure,imshow(motionblur)H=fspecial(。

30、disk,10); %均值滤波PSPaverageblur=imfilter(I,H);figure,imshow(averageblur)在上述模糊图像上再添加噪声J=imnoise(motionblur,salt & pepper);figure,imshow(J)B) 维纳滤波复原使用维纳滤波复原函数deconvwnr复原无噪声模糊图像。len=30; theta=10; PSF=fspecial(motion,len,theta);blurred=imfilter(I,PSF,circular,conv);figure,imshow(blurred)wnr1=deconvwnr(blu。

31、rred,PSF); %真实PSFfigure,imshow(wnr1)%非真实PSF wnr2=deconvwnr(blurred,fspecial(motion,2*len,theta); figure,imshow(wnr2)%非真实PSF wnr3=deconvwnr(blurred,fspecial(motion,len,2*theta); figure,imshow(wnr3)*使用维纳滤波复原函数deconvwnr复原模糊噪声图像。PSF=fspecial(motion,len,theta);blurred=imfilter(I,PSF,circular,conv);noise=。

32、0.1*randn(size(I);BlurredNoisy=imadd(blurred,im2uint8(noise);figure,imshow(BlurredNoisy)wnr4=deconvwnr(BlurredNoisy,PSF);figure,imshow(wnr4) *设置信噪比和相关函数的维纳滤波复原(p179图9.12)。NSR=sum(noise(:).2)/sum(im2double(I(:).2); %计算信噪比wnr5=deconvwnr(BlurredNoisy,PSF,NSR);figure,imshow(wnr5) %设置信噪比的复原结果NP=abs(fftn(。

33、noise).2; %噪声能量谱密度NCORR=fftshift(real(ifftn(NP); %噪声自相关函数IP=abs(fftn(im2double(I).2; %图像能量谱密度ICORR=fftshift(real(ifftn(IP); %图像自相关函数wnr6=deconvwnr(BlurredNoisy,PSF,NCORR,ICORR);figure,imshow(wnr6) %设置自相关函数的复原结果 实验六 图像分析与理解及图像压缩一、实验目的1. 了解DCT变换在图像压缩中的应用2. 掌握边缘检测的Matlab实现方法3. 了解用四叉数分解函数进行区域分割的方法4. 了解M。

34、atlab区域操作函数的使用方法5. 了解图像分析和理解的基本方法二、实验内容1. 图像分析与理解A) 边缘检测使用edge函数对图像rice.tif进行边缘检测。I=imread(rice.tif); imshow(I)bw1=edge(I,roberts);bw2=edge(I,sobel);bw3=edge(I,prewitt);bw4=edge(I,canny);bw5=edge(I,log);figure,imshow(bw1)figure,imshow(bw2)figure,imshow(bw3)figure,imshow(bw4)figure,imshow(bw5)要求同时比较r。

35、oberts,sobel,prewitt,canny,log算子的检测效果。edge函数提供的最有效的边缘检测方法是canny方法。优点:使用两种不同的阈值分别检测强、弱边缘,并且仅当弱边缘与强边缘相连时,才将弱边缘包含在输出图像中。该方法不易受噪声干扰,能够在噪声和边缘间取得较好的平衡,检测到真正的弱边缘。B) 区域操作使用区域选择函数roicolor, 区域滤波函数roifilt2和区域填充函数roifilld对图像pout.tif或eight.tif进行区域操作。I=imread(pout.tif);imshow(I)BW=roipoly;figure,imshow(BW)h=fspec。

36、ial(unsharp);I2=roifilt2(h,I,BW);figure,imshow(I2)I3=roifill;figure,imshow(I3);I=imread(eight.tif); imshow(I)c=222 272 300 270 221 194;r=21 21 75 121 121 75;BW=roipoly(I,c,r);figure,imshow(BW)H=fspecial(unsharp);J1=roifilt2(H,I,BW);figure,imshow(J1)J2=roifill(I,c,r);figure,imshow(J2)C) *区域分割使用函数qtde。

37、comp对图像alumgrns.tif进行四叉树分解。I=imread(alumgrns.tif);I=I(1+1:256,1+1:256);imshow(I)S=qtdecomp(I,0.2);figure,imshow(S)S=qtdecomp(I,0.1);figure,imshow(S)D) 图像分析与理解*用分水岭分割函数watershed对图像afmsurf.tif进行分割,测试互相接触的对象。afm=imread(afmsurf.tif);subplot(231),imshow(afm),title(Original Image);se=strel(disk,15);Itop=i。

38、mtophat(afm,se); % 高帽变换subplot(232),imshow(Itop, ),title(Tophat Image);Ibot=imbothat(afm,se); % 低帽变换subplot(233),imshow(Ibot, ),title(Bottomhat Image);Ienhance=imsubtract(imadd(Itop,afm),Ibot);subplot(234),imshow(Ienhance),title(Original+Tophat-Bottomhat);Iec=imcomplement(Ienhance);Iemin=imextendedm。

39、in(Iec,22); % 搜索谷值Iimpose=imimposemin(Iec,Iemin); % 置谷值为0subplot(235),imshow(Iimpose),title(Complement of Enhanced Image);wat=watershed(Iimpose); % 分水岭分割subplot(236),imshow(wat),title(Watershed Segmented Image);rgb=label2rgb(wat);subplot(236),imshow(rgb),title(Color Segmented Image);2. 图像压缩A) DCT变换在图像压缩中的应用执行Matlab自带的演示程序dctdemo,比较DCT变换矩阵舍弃系数对重构图像的影响dctdemoB) *小波变换在图像压缩中的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值