您好,欢迎来到华佗健康网。
搜索
您的当前位置:首页中南民族大学数字图像处理实验报告

中南民族大学数字图像处理实验报告

来源:华佗健康网


院 系: 计算机科学学院 专 业:计算机科学与技术 年 级: 2011级 课 程 名 称: 数字图像处理 组 号: 02 姓名(学号): 谢 枫 ********

石小飞 11061148 黄 煜 11061144 柳卫平 11061150 李春豪 11061147

* * * 师: ***

2014年 4月 29日

年级 2011级 班号 5 组号 02 姓名 学号 专计算机科学与技术 业 实验名称 Matlab图像处理基础 实验室 9 实 验 目 的 和 要 求 一、实验目的: (1)熟悉Matlab开发环境; (2)掌握Matlab中数字图像的读取、显示、保存的基本方法的使用; (3)掌握不同类型的数字图像之间转换方法; (4)加深空间分辨率和灰度分辨率对图像显示效果的影响; (5)熟悉Matlab中的傅里叶变换; (6)基于Matlab的数字图像程序设计方法; 二、实验内容: (1)在Matlab中运用imread函数读取一幅RGB图像(从实验素材中任意选择),查看该图像的大小、数据类型信息,并将该图像转换为灰度图像后以bmp格式保存。 (2)运用imread函数读取一幅灰度图像(从实验素材中任意选择),分别对其进行2采样、4采样和8采样,将原图像及采样后的三幅结果图像按同一大小显示出来并比较空间分辨率对图像显示效果的影响。 (3)运用imread函数读取一幅灰度图像(从实验素材中任意选择),分别以5,10,50为间隔对其灰度重新进行均匀量化,将原图像及重新量化后的三幅结果图像按同一大小显示出来并比较灰度分辨率对图像显示效果的影响。 (4)读取一幅灰度图像,对其进行快速傅里叶变换,将原空域图像和变换后的频域图像显示在同一窗口中。 三、实验要求: (1)针对具体实验内容要分别展示:指令(或m文件),输出结果,成因分析,经验总结。 (2)所有生成的图像或m文件,必须命名,比如图n:描述图像信息;***.m文件:描述文件信息。 (3)严禁抄袭,一旦发现雷同,所有涉及者均判实验报告不及格。

实验(1): 1.代码实现 I=imread('peppers.png');%将图像peppers.png读入数组I中 imshow(I); %显示图像I imfinfo('peppers.png'); %读取图像大小、数据类型信息 ans %查看图像大小、数据类型信息 I=rgb2gray(I); %将图像转换为灰度图像I imwrite(I,'peppers.bmp');%将转换后的图像以文件名peppers.bmp保存 2.运行结果 实 验 原 理 ( 算 法 流 程 ) 1-1-1图 查看Peppers.png图片的基本信息和显示图片过程 1-1-2图 将Peppers.png图片保存为peppers.bmp图片 3.实验分析

实 验 原 理 ( 算 法 流 程 ) 先用imread()函数将peppers.png存入I数组中,可见1-1-1图右上角的Workspace中的I。然后用imfinfo()函数和ans函数读取该图像的大小、类型等信息,具体在1-1-1图的Command Window中可见。至于图片格式的转换,就是用rgb2gray()函数将保存在I数组中的数据转换成灰度格式保存在原来的数组I中。最后将变换所得到的数据保存于peppers.bmp文件中。 实验(2): 1.代码实现 I=imread('lena.bmp');%读取灰度图片 subplot(221),imshow(I,[]),title('256*256,256') I=I(1:2:end,1:2:end);%图片采样 subplot(222),imshow(I,[]),title('128*128,256') I=I(1:2:end,1:2:end);%图片采样 subplot(223),imshow(I,[]),title('*,256') I=I(1:2:end,1:2:end);%图片采样 subplot(224),imshow(I,[]),title('32*32,256') 2.运行结果 1-2 图 图片空间分辨率对图片的影响 3.实验分析 由1-2图可以看出,在保持灰度级数一定的条件下,随着图片空间分辨率的减半,即256*256,128*128,*,32*32的图像,图中的各个区域边缘处的棋盘模式越来越明显,并且全图的像素颗粒越来越粗。证明了空间分辨率是影响图片清晰度的因素之一。 实验(3): 1.代码实现 I=imread('lena.bmp');%读取灰度图片 subplot(221),imshow(I,256),title('256*256,256')%灰度级为256 subplot(222),imshow(I,50),title('256*256,50') %灰度级为50

subplot(223),imshow(I,10),title('256*256,10') %灰度级为10 subplot(224),imshow(I,5),title('256*256,5') %灰度级为5 2.运行结果 实 验 原 理 ( 算 法 流 程 ) 1-3 图 图片灰度级对图片的影响 3.实验分析 该实验是在空间分辨率一定的前提下,改变灰度级别来观察图片的变化情况。由1-3图可以看出,灰度级从256一次到50、10、5过程中,图中的各个区域边缘处的棋盘模式也越来越明显,并且全图的像素颗粒越来越粗。证明了灰度分辨率也是影响图片清晰度的因素之一。 实验(4): 1.代码实现 A=imread('saturn.png');%读取真彩图 B=rgb2gray(A);%将真彩图转换为灰度图 subplot(121),imshow(B);%显示灰度图 C=ffshift(fft2(B));%计算傅里叶变换并位移 subplot(122),imshow(log(abs(C)),[]);%显示变换频谱

2.运行结果 实 验 原 理 ( 算 法 流 程 ) 1-4图 图片的傅里叶变换效果 3.实验分析 由1-4图可以看出,傅里叶变换对灰度图片进行频谱转换,很好的刻画了图片的变换特征。代码中运用了fftshift()函数将变换后的图像频谱中心从矩阵的原点移动到了矩阵的中心。为了够清楚的观察到转换效果,最后用abs()函数对变换结果进行求模运算,避免不能显示的复数。因此得到了由图中的变换效果。

年级 专业 实验名称 2011级 计算机科学与技术 班号 5 组号 02 学号 姓名 实验室 9 Matlab图像图像增强 实 验 目 的 和 要 求 1.实验目的 (1)掌握空域点处理图像增强方法; (2)掌握空域滤波图像增强方法; (3)掌握频域滤波图像增强方法; 2.实验内容 (1)读取一幅对比度不足的图像,对该图像进行直接灰度变换,包括图像求反、线性灰度变换、对数变化,并将原图像及变换后的图像进行对比。 (2)读取一幅直方图不均匀的图像,对该图像进行直方图均衡处理,显示处理前后的图像以及它们的灰度直方图。 (3)读取一幅灰度图像,对其添加均值为0,方差为0.02的高斯噪声,然后对添加噪声后的图像分别用3,9,18幅相同图像对其进行相加求平均结果,比较添加噪声图像与结果图像。 (4)读取一幅灰度图像,对其添加均值为0,方差为0.01的高斯噪声,然后分别对其进行中值滤波、sobel算子滤波、Prewitt算子滤波,比较添加噪声图像与滤波后的结果图像。 (5)读取一幅灰度图像,分别对其进行理想低通滤波和巴特沃斯高通滤波,显示滤波结果。 3.报告撰写要求: (1)针对具体实验内容要分别展示:指令(或m文件),输出结果,成因分析,经验总结 (2)所有生成的图像或m文件,必须命名,比如图n:描述图像信息;***.m文件:描述文件信息 (3)严禁抄袭,一旦发现雷同,所有涉及者均判实验报告不及格

实 验 原 理 ( 算 法 流 程 ) 实验(1): 1.代码实现 I=imread('kids.tif'); subplot(221),imshow(I); I=double(I); I1=I; I2=I; I3=I; %图像求反 I1=256-1-I1; I1=uint8(I1); subplot(222),imshow(I1); %线性灰度变换 [M,N]=size(I2); for i=1:M for j=1:N if I2(i,j) <= 30 I2(i,j)=I2(i,j); elseif I2(i,j)<=150 I2(i,j)=(200-30)/(150-30)*(I2(i,j)-30)+30; else I2(i,j)=(255-200)/(255-150)*(I2(i,j)-150)+200; end end end subplot(223),imshow(uint8(I2)); %对数灰度变换 I3=41*log(1+I3); I3=uint8(I3); subplot(224),imshow(I3);

2.运行结果 实 验 原 理 ( 算 法 流 程 ) 2-1图 图像求反、线性灰度变换、对数变换效果对比 3.实验分析 上图中的四幅图片从左到右,从上到下分别是原图、图像求反效果图、图像线性灰度变换效果图、图像对数变换效果图。从上图可看出,原图像与求反图像之间存在很大差异,而求反的操作就是I=256-1-I这条语句实现的,图像可以说是由黑变白。线性灰度变换图像的效果和原图最接近,其主要是将图像灰度级拉伸,增强对比度,将不需要的细节灰度级压缩,所以线性变换图像看起来比原图相对清楚、明亮。而对数是对原图像进行动态范围的的压缩,因此图片的细节可见程度相对明显。 实验(2): 1.代码实现 I=imread('mandi.tif'); subplot(221),imshow(I),title('原图和其直方图'); subplot(222),imhist(I); %显示图像直方图 I1=histeq(I); %对图像进行直方图均衡化处理 subplot(223),imshow(I1),title('直方图均衡化后的图和其直方图'); subplot(224),imhist(I1); %显示直方图均衡化后的图和其直方图

2.运行结果 实 验 原 理 ( 算 法 流 程 ) 2-2图 图片直方图均衡处理效果图和直方图 3.实验分析 由2-2图的直方图均衡处理效果图及其直方图的比较我们可以很容易发现。原图的直方图的灰度值相对集中靠左,所以看原图的效果显得相对较暗,而且动态范围偏小,对比度很低。通过直方图均衡化后的,图像的直方图显示相对平均,而且动态范围也变大了。其主要思想就是通过把原来不均衡的直方图变换为均衡的分布形式,来增强灰度的动态范围,从而达到增强图像整体对比度的效果。 实验(3): 1.代码实现 f=imread('onion.png'); f=rgb2gray(f); %把彩色图像转换为灰度图像 [M,N]=size(f); ff1=zeros(M,N); for i=1:18 ff(:,:,i)=imnoise(f,'gaussian',0,0.02);%添加噪声

ff1=ff1+double(ff(:,:,i)); if or(or(i==1,i==3),or(i==9,i==18)); figure; imshow(uint8(ff1/i)); end end 2.运行结果 实 验 原 理 ( 算 法 流 程 ) 2-3图 图像相加求平均去噪效果图 3.实验分析 该实验目的主要是验证通过图像加法求平均能否达到减少噪声,即图像增强功能。上图分别先通过随机高斯噪声处理后,再分别进行1,3,9,18的图像相加求平均,最后得到上图结果。上图,从左至右,从上至下,分别为1,3,9,18求平均。通过图像处理后效果的比较,我们可以得出,相加并求平均的图像数越多,图像去噪增强的效果越明显。 实验(4): 1.代码实现 I=imread('eight.tif'); subplot(231),imshow(I);title('原图'); J=imnoise(I,'gaussian',0,0.01); subplot(232),imshow(J);title('随机噪声图像');

subplot(232),imshow(J);title('随机噪声图像'); K=medfilt2(I,[9,9]);%进行9X9模板中值滤波 subplot(233),imshow(K);title('9X9模板中值滤波图'); S=fspecial('sobel'); %应用sobel算子锐化图像 I2=filter2(S,I); %sobel算子滤波锐化 subplot(234),imshow(I2);title('sobel算子锐化图像'); H=fspecial('prewitt'); %应用prewitt算子锐化图像 I3=filter2(H,I); %prewitt算子滤波锐化 subplot(235),imshow(I3);title('prewitt算子锐化图像'); %显示prewitt算子锐化图像 2.运行结果 实 验 原 理 ( 算 法 流 程 ) 2-4图 图像中值滤波、sobel滤波、prewitt滤波效果图 3.实验分析 2-4图通过相对原图加上随机高斯噪声处理后在分别进行中值滤波、sobel滤波、prewitt滤波处理,得到上面相关过效果图。从上图很直观的可以看出中值滤波的效果最好。而sobel滤波、prewitt滤波处理后,边缘模糊现象很严重。对于中值滤波,其在一定的条件下可以克服线性滤波带来的图像细节模糊问题。而该实验采用的是9x9的滤波模板。而sobel滤波和prewitt滤波,其梯度值和临近像素灰度值的差分成正比,因此图像中灰度变化较大的边缘区域的梯度值大,而灰度变化平缓的区域梯度值小。所以,才出现上图效果。

实 验 原 理 ( 算 法 流 程 ) 实验(5): 1.代码实现 I=imread('office_5.jpg'); subplot(221),imshow(I);title('真彩原图'); I=rgb2gray(I); subplot(222),imshow(I);title('灰度原图'); I=double(I); f=fft2(I); %采用傅里叶变换 g=fftshift(f); %数据矩阵平衡 gg=fftshift(f); %数据矩阵平衡 [M,N]=size(I); n1=floor(M/2); n2=floor(N/2); d0=65; for i=1:M %进行理想低通滤波 for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); if d<=d0 h=1; else h=0; end g(i,j)=h*g(i,j); end end g=ifftshift(g); g=uint8(real(ifft2(g))); subplot(223);imshow(g);title('理想低通滤波图'); n=2; %进行巴特沃特高通滤波 d0=8; for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); if d==0 h=0; else h=1/(1+(d0/d)^(2*n)); end gg(i,j)=h*gg(i,j); end end

gg=ifftshift(gg); gg=uint8(real(ifft2(gg))); subplot(224);imshow(gg);title('巴特沃特高通滤波图');%显示巴特沃特高通滤波图 2.运行结果 实 验 原 理 ( 算 法 流 程 ) 2-5图 图像的理想低通滤波和巴特沃斯高通滤波效果图 3.实验分析 该实验室将理想的低通滤波与巴特沃特高通滤波效果进行对比。正如2-5图所示,上面一行的为真彩色图和其经转换的灰度图,下面为经过滤波的效果图。从效果看,理想的低通滤波要比巴特沃特高通滤波效果好。然而理想的低通滤波在处理过程中产生了比较严重的模糊现象。而经过巴特沃特高通滤波后区域边界有了明显的增强,灰度动态范围变小,但是整个图的暗度变高了很多。

实 验 原 理 ( 算 法 流 程 ) 1.实验目的 (1)掌握逆滤波图像复原方法; (2)掌握维纳滤波图像复原方法; (3)掌握最小二乘方图像复原方法; (4)掌握全彩色图像处理方法; (5)掌握伪彩色图像处理方法; (6)掌握基本的图像检测与分割方法 2.实验内容 (1)读取一幅灰度图像,首先对其进行运动模糊(显示模糊前后的图像),再对其添加高斯噪声;然后对其分别进行逆滤波、维纳滤波、最小二乘方滤波图像复原,比较这三种复原算法的异同。 (2)在(1)的基础上,改变高斯噪声的参数,比较三种复原算法在高、中、低三种不同程度的噪声下的复原效果。 (3)读取一幅RGB彩色图像,获取其三个通道R、G、B图像,并分别对其进行中值滤波,最后将三幅滤波结果图像合成一幅RGB结果图像。 (4)读取RGB三原色图像,生成其在HSI空间的各个分量各自对应的灰度图。 (5)读取一幅灰度图像,利用密度分层法将其转换为索引图像。要求至少采用Matlab提供的2种着色器(参见colormap)来实现。 (6)读取一幅灰度图像(如lena.bmp),分别采用roberts算子、sobel算子、Prewitt算子、Canny算子、LOG算子对其进行边缘检测,并比较检测结果 (7)读取一幅灰度图像,采用Otsu阈值法对其进行阈值分割,并尝试手动调整Otsu阈值的大小,观察分割结果的变化 (8)读取一幅灰度图像,采用分水岭算法对其进行分割,观察分割结果 3.报告撰写要求: (1)针对具体实验内容要分别展示:指令(或m文件),输出结果,成因分析,经验总结 (2)所有生成的图像或m文件,必须命名,比如图n:描述图像信息;***.m文件:描述文件信息 (3)严禁抄袭,一旦发现雷同,所有涉及者均判实验报告不及格

实验(1): 1.代码实现 C=imread('picture.png'); C=rgb2gray(C); subplot(231);imshow(C);title('灰度原图'); %运动模糊处理 LEN=30; %设置运动位移为30像素 THETA=45; %设置运动角度 PSF=fspecial('motion',LEN,THETA); %建立二维仿真线性运动滤波器PSF MF=imfilter(C,PSF,'circular','conv'); %用PSF产生退化图像 subplot(232);imshow(MF);title('运动模糊图');%显示模糊后的运动图像 MFN=imnoise(MF,'gaussian',0,0.0000001);%加高斯噪声 subplot(233);imshow(MFN);title('加高斯噪声图');%显示高斯噪声图像 noise=imnoise(zeros(size(C)),'gaussian',0,0.8); NSR=sum(noise(:).^2)/sum(MFN(:).^2);%计算信噪比 subplot(234);imshow(deconvwnr(MFN,PSF));title('逆滤波复原图'); subplot(235);imshow(deconvwnr(MFN,PSF,NSR));title('维纳滤波复原图'); 实 subplot(236);imshow(deconvreg(MFN,PSF,4));title('最小二乘方滤波复原图验 '); 原 2.运行结果 理 ( 算 法 流 程 )

3-1图 图像的逆滤波、维纳滤波、最小二乘方滤波图 3.实验分析 实验前,现将一副灰度图片进行运动模糊处理,然后加上随机高斯噪声。随后进行逆滤波、维纳滤波、最小二乘方滤波处理。由上面各个图的效果可以看出,维纳滤波和最小二乘方滤波对噪声和运动模糊有相当的好的过滤效果。而逆滤波则出现较多的杂色。 实 验 原 理 ( 算 法 流 程 ) 实验(2): 1.代码实现 C=imread('picture.png'); C=rgb2gray(C); subplot(231);imshow(C);title('灰度原图'); %运动模糊处理 LEN=30; %设置运动位移为30像素 THETA=45; %设置运动角度 PSF=fspecial('motion',LEN,THETA); %建立二维仿真线性运动滤波器PSF MF=imfilter(C,PSF,'circular','conv'); %用PSF产生退化图像 subplot(232);imshow(MF);title('运动模糊图');%显示模糊后的运动图像 MFN=imnoise(MF,'gaussian',0,0.001);%加高斯噪声 subplot(233);imshow(MFN);title('加高斯噪声图');%显示高斯噪声图像 noise=imnoise(zeros(size(C)),'gaussian',0,0.3); NSR=sum(noise(:).^2)/sum(MFN(:).^2);%计算信噪比 subplot(234);imshow(deconvwnr(MFN,PSF));title('逆滤波复原图'); subplot(235);imshow(deconvwnr(MFN,PSF,NSR));title('维纳滤波复原图'); subplot(236);imshow(deconvreg(MFN,PSF,4));title('最小二乘方滤波复原图'); 2.运行结果

实 验 原 理 ( 算 法 流 程 ) 3-2-1图 高斯参数的设置(0.001,0.3) 3-2-1图 高斯参数的设置(0.000001,0.9)

3.实验分析 由上面的两个高斯参数可以看出,噪声对以上三种滤波的方式影响很大。高斯噪声参数越大,逆滤波的去噪效果就越差,而维纳滤波和最小二乘方滤波去噪效果就越好。 实 验 原 理 ( 算 法 流 程 ) 实验(3): 1.代码实现 rgb=imread('rgb.jpg'); subplot(231);imshow(rgb);title('RGB原图'); R=rgb(:,:,1);%提取图像的R、G、B G=rgb(:,:,2); B=rgb(:,:,3); subplot(234);imshow(R);title('图像的R分量图');%显示图像的R、G、B分量图 subplot(235);imshow(G);title('图像的G分量图'); subplot(236);imshow(B);title('图像的B分量图'); R_filt=medfilt2(R,'symmetric'); %对R、G、B分量分别进行中值滤波 G_filt=medfilt2(G,'symmetric'); B_filt=medfilt2(B,'symmetric'); rgb_filtered=cat(3,R_filt,G_filt,B_filt);%将图像合并 subplot(233);imshow(rgb_filtered);title('进行RGB中值滤波后的图'); 2.运行结果

3-3图 图像RGB三通道中值滤波效果 3.实验分析 由上面3-3图中的R、G、B分量图可以看出针对自己的通道,分别滤去其他两种颜色,所以结果呈黑色。至于重叠的部分,因为有自己的通道颜色在其中,所以不为黑色。将三个通道分别做中值滤波后在进行组合,得到中值滤波组合图像。从图像的整体上看,和原图像没有太大的区别。 实 验 原 理 ( 算 法 流 程 ) 实验(): 1.代码实现 rgb=imread('rgb.jpg'); subplot(232);imshow(rgb);title('原图'); rgb=im2double(rgb);%将图像转化成double型 r=rgb(:,:,1); %提取图像R、G、B分量 g=rgb(:,:,2); b=rgb(:,:,3); %计算I分量 I=(r+g+b)/3; %计算S分量 tmp1=min(min(r,g),b); tmp2=r+g+b; tmp2(tmp2==0)=eps; S=1-3.*tmp1./tmp2; %计算H分量 tmp1=0.5*((r-g)+(r-b)); tmp2=sqrt((r-g.^2)+(r-b).*(g-b)); theta=acos(tmp1./(tmp2+eps)); H=theta; H(b>g)=2*pi-H(b>g); H=H/(2*pi); H(S==0)=0; hsi=cat(3,H,S,I); subplot(234);imshow(H);title('H分量图'); subplot(235);imshow(S);title('S分量图'); subplot(236);imshow(I);title('I分量图'); 2.运行结果

实 验 原 理 ( 算 法 3-4图 图像的HIS空间各个分量效果图 流 3.实验分析 程 由3-4图狠一很清楚的了解到该图像色调、饱和度、强度之间的信息。根据H分量) 图,可以看出哪个区域最接近那种光的波长;根据S分量图,可以了解颜色的深浅程度,饱和度越高,颜色越深;根据I分量图,可以了解该区域亮度。 实验(5): 1.代码实现 I=imread('gantrycrane.png'); subplot(221);imshow(I);title('原图'); %密度分层法 G2C=grayslice(I,128); subplot(222);imshow(G2C,gray(128));title('密度分层法效果图'); %colormap方法 subplot(223);imshow(I); title('colormap-hot图'); colormap hot; subplot(224);imshow(I);title('colormap-gray图'); colormap gray;

2.运行结果 实 验 原 理 ( 算 法 流 程 ) 3-5图 密度分层法转换索引图像 3.实验分析 由3-5图我们可以看出密度分层法效果使得图像整个边生、硬暗淡。而使用colormap hot和colormap gray工具后,效果和原图区别不大。 实验(6): 1.代码实现 f=imread('lena.bmp'); subplot(231);imshow(f);title('原图'); [g,t]=edge(f,'roberts',[],'both');%用Roberts算子分割图像 subplot(232);imshow(g);title('Roberts算子分割图'); [g,t]=edge(f,'sobel',[],'both');%用Sobel算子分割图像 subplot(233);imshow(g);title('Sobel算子分割图'); [g,t]=edge(f,'prewitt',[],'both');%用Prewitt算子分割图像 subplot(234);imshow(g);title('Prewitt算子分割图');

[g,t]=edge(f,'log');%用Log算子分割图像 subplot(235);imshow(g);title('Log算子分割图'); [g,t]=edge(f,'canny');%用Canny算子分割图像 subplot(236);imshow(g);title('Canny算子分割图'); 2.运行结果 实 验 原 理 ( 算 法 流 程 ) 3-6图 图像roberts算子、sobel算子、Prewitt算子、Canny算子、LOG算子边缘检测 3.实验分析 由3-6图我们可以直观的看出,canny算子对图像的边缘检测效果更好,其次是Log算子也有很好的边缘检测效果。而sobel算子、Prewitt算子边缘检测效果相当。再其次是roberts算子。 roberts算子是利用拒不差分算子寻找边缘,边缘定位精度较高,但容易丢失部分边缘。 sobel算子和Prewitt算子是它们先对图像做加权平滑,在作微分运算,不同的是权值有差别,因而这两种算子对噪声具有一定的抑制能力,但不能完全排除检测边缘结果出现的虚假边缘。 LOG算子是先用高斯函数对函数做平滑滤波处理,再用Log算子检测边缘,因此有效地克服了Log算子抗噪能力差的问题,但是在抑制噪声的同时,也可能将原来有比较尖锐的边缘平滑掉,造成尖锐边远无法检测出来。

Canny算子是基于最优化思想而指出边缘检测算子,但是实际效果不一定最优,其采用高斯函数对图像做平滑处理,故具有较强的抑制噪声的能力。 实 验 原 理 ( 算 法 流 程 ) 实验(7): 1.代码实现 f=imread('tool.jpg'); f=rgb2gray(f); subplot(121);imshow(f);title('原图'); %自动获取最佳值 %T=graythresh(f);%取最佳值 %g=im2bw(f,T); %手动调试:灰度值T范围为[0,L-1] g=im2bw(f,0.8888); subplot(122);imshow(g);title('Otsu方法二值化图(T=0.8888)'); 2.运行结果 3-7-1图 Otsu阈值法-阈值分割-最佳参数效果图

实 验 原 理 ( 算 法 流 程 ) 3-7-2图 Otsu阈值法-阈值分割-(T=0.2222)效果图

3-7-3图 Otsu阈值法-阈值分割-(T=0.4444)效果图 实 验 原 理 ( 算 法 流 程 ) 3-7-4图 Otsu阈值法-阈值分割-(T=0.6666)效果图 3-7-5图 Otsu阈值法-阈值分割-(T=0.8888)效果图

3.实验分析 由3-7图可以看出,取最优值为0.5333,得到效果也最佳。通过手动改变T值,从0.2222到0.8888过程中,检测分割结果也由浅变深,边缘则有模糊到清楚,再由清楚到模糊变化。 实 验 原 理 ( 算 法 流 程 ) 实验(8): 1.代码实现 f=imread('0000.jpg'); f1=rgb2gray(f); f2=rgb2gray(f); subplot(221);imshow(f);title('原图'); f1=double(f1); f2=double(f2); hv=fspecial('prewitt'); hh=hv.'; %计算梯度值 %分水岭算法分割法 gv=abs(imfilter(f1,hv,'replicate')); gh=abs(imfilter(f1,hh,'replicate')); g=sqrt(gv.^2+gh.^2);%计算距离 L=watershed(g); wr=L==0; f1(wr)=255; subplot(223);imshow(uint8(f1));title('分水岭算法分割法效果图'); %改进的分水岭算法分割法 gv=abs(imfilter(f2,hv,'replicate')); gh=abs(imfilter(f2,hh,'replicate')); g=sqrt(gv.^2+gh.^2);%计算距离 df=bwdist(f2); L=watershed(df);%计算外部约束 em=L==0; im=imextendedmax(f2,20); g2=imimposemin(g,im|em);%重构梯度图 L2=watershed(g2);%调整watershed函数进行分割 wr2=L2==0; f2(wr2)=255; subplot(224);imshow(uint8(f2));title('改进的分水岭算法分割法效果图'); 2.运行结果

实 验 原 理 ( 算 法 流 程 3-8图 分水岭算法分割与改进分水岭算法分割效果图 ) 3.实验分析 由3-8图我们可以看出分水岭算法分割有一定的图像边缘识别检测能力, 但是在识别过程中,增加了过多的噪声。而改进的分水岭算法分割在尽量不改变原图像的情况下对边缘进行了很好的检测。

谢 枫 11061143 代码实现 李春豪 11061147 效果测试 黄 煜 11061144 报告书写 柳卫平 11061150 组 内 分 工 报告书写 石小飞 11061148 报告整理

实 验 结 果 分 析 及 心 得 体 会

实 验 结 果 分 析 及 心 得 体 会

实 验 结 果 分 析 及 心 得 体 会

实 验 结 果 分 析 及 心 得 体 会

实 验 结 果 分 析 及 心 得 体 会

成 绩 评 定 教师签名: 年 月 日

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.com 版权所有 湘ICP备2023021991号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务