图像分割实验报告讲解

合集下载

数字图像处理实验报告——图像分割实验

数字图像处理实验报告——图像分割实验

实验报告课程名称数字图像处理导论专业班级_______________姓名 _______________学号_______________电气与信息学院与谐勤奋求就是创新一.实验目得1.理解图像分割得基本概念;2.理解图像边缘提取得基本概念;3.掌握进行边缘提取得基本方法;4.掌握用阈值法进行图像分割得基本方法.二。

实验内容1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。

比较三种算子处理得不同之处;2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明。

3.任选一种阈值法进行图像分割、图1 图2三.实验具体实现1.分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。

比较三种算子处理得不同之处;I=imread(’mri、tif');imshow(I)BW1=edge(I,’roberts’);figure ,imshow(BW1),title(’用Roberts算子’)BW2=edge(I,’sobel’);figure,imshow(BW2),title(’用Sobel算子 ')BW3=edge(I,’log’);figure,imshow(BW3),title(’用拉普拉斯高斯算子’)比较提取边缘得效果可以瞧出,sober算子就是一种微分算子,对边缘得定位较精确,但就是会漏去一些边缘细节.而Laplacian—Gaussian算子就是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘得细节比较丰富。

通过比较可以瞧出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。

2.设计一个检测图1中边缘得程序,要求结果类似图2,并附原理说明.i=imread('m83、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图');thread=130/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’);3.任选一种阈值法进行图像分割、i=imread('trees、tif’);subplot(1,2,1);imhist(i);title('原始图像直方图’);thread=100/255;subplot(1,2,2);i3=im2bw(i,thread);imshow(i3);title('分割结果’)1、分别用Roberts,Sobel与拉普拉斯高斯算子对图像进行边缘检测。

图像分割处理实验报告

图像分割处理实验报告

图像分割处理实验报告1. 引言图像分割是计算机视觉中的重要任务之一,其目标是将图像划分成具有相似特征的子区域。

图像分割在很多应用领域中都有着广泛的应用,比如医学影像分析、目标检测和图像编辑等。

本实验旨在探索不同的图像分割算法,并比较它们在不同场景下的效果和性能。

2. 实验方法2.1 实验数据本实验选取了一组包含不同场景的图像作为实验数据集,包括自然景观、人物肖像和城市街景等。

每张图像的分辨率为500x500像素。

2.2 实验算法本实验使用了两种经典的图像分割算法进行比较,分别是基于阈值的分割和基于边缘的分割。

2.2.1 基于阈值的分割基于阈值的分割算法是一种简单而直观的方法,其原理是根据像素值的亮度信息将图像分割成不同的区域。

在本实验中,我们将图像的灰度值与一个事先设定的阈值进行比较,如果大于阈值则设为白色,否则设为黑色,从而得到分割后的图像。

2.2.2 基于边缘的分割基于边缘的分割算法利用图像中的边缘信息进行分割,其原理是检测图像中的边缘并将其作为分割的依据。

在本实验中,我们使用了Canny边缘检测算法来提取图像中的边缘信息,然后根据边缘的位置进行分割。

2.3 实验流程本实验的流程如下:1. 加载图像数据集;2. 对每张图像分别应用基于阈值的分割算法和基于边缘的分割算法;3. 计算分割结果和原始图像之间的相似度,使用结构相似性指标(SSIM)进行评估;4. 分析并比较两种算法在不同场景下的分割效果和性能。

3. 实验结果3.1 分割效果实验结果表明,基于阈值的分割算法在处理简单场景的图像时效果较好,可以比较准确地将图像分割为目标区域和背景。

然而,当图像的复杂度增加时,基于阈值的分割算法的效果明显下降,往往会产生较多的误分割。

相比之下,基于边缘的分割算法在处理复杂场景的图像时表现良好。

通过提取图像的边缘信息,该算法能够较准确地分割出图像中的目标区域,相比于基于阈值的分割算法,其产生的误分割较少。

3.2 性能评估通过计算分割结果和原始图像之间的SSIM指标,我们可以得到两种算法在不同场景下的性能评估。

图像分割 实验报告

图像分割 实验报告

图像分割实验报告图像分割实验报告一、引言图像分割是计算机视觉领域中的一个重要研究方向,它旨在将一幅图像分割成具有语义意义的不同区域。

图像分割在许多应用中发挥着关键作用,如目标检测、场景理解和医学图像处理等。

本实验旨在探索不同的图像分割方法,并对其进行比较和评估。

二、实验方法本实验选择了两种常用的图像分割方法:基于阈值的分割和基于边缘的分割。

首先,我们使用Python编程语言和OpenCV库加载图像,并对图像进行预处理,如灰度化和平滑处理。

接下来,我们将详细介绍这两种分割方法的实现步骤。

1. 基于阈值的分割基于阈值的分割是一种简单而常用的分割方法。

它通过将图像像素的灰度值与预先设定的阈值进行比较,将像素分为前景和背景两类。

具体步骤如下:(1)将彩色图像转换为灰度图像。

(2)选择一个适当的阈值,将图像中的像素分为两类。

(3)根据阈值将图像分割,并得到分割结果。

2. 基于边缘的分割基于边缘的分割方法是通过检测图像中的边缘来实现分割的。

边缘是图像中灰度变化剧烈的区域,通常表示物体的边界。

具体步骤如下:(1)将彩色图像转换为灰度图像。

(2)使用边缘检测算法(如Canny算法)检测图像中的边缘。

(3)根据边缘信息将图像分割,并得到分割结果。

三、实验结果与讨论我们选择了一张包含多个物体的彩色图像进行实验。

首先,我们使用基于阈值的分割方法对图像进行分割,选择了适当的阈值进行实验。

实验结果显示,基于阈值的分割方法能够将图像中的物体与背景分离,并得到较好的分割效果。

接下来,我们使用基于边缘的分割方法对同一张图像进行分割。

实验结果显示,基于边缘的分割方法能够准确地检测出图像中的边缘,并将图像分割成多个具有边界的区域。

与基于阈值的分割方法相比,基于边缘的分割方法能够更好地捕捉到物体的形状和边界信息。

通过对比两种分割方法的实验结果,我们发现基于边缘的分割方法相对于基于阈值的分割方法具有更好的效果。

基于边缘的分割方法能够提供更准确的物体边界信息,但也更加复杂和耗时。

图像分割 实验报告

图像分割 实验报告

图像分割实验报告《图像分割实验报告》摘要:图像分割是计算机视觉领域的重要研究方向,它在许多领域都有着重要的应用价值。

本实验旨在探究图像分割算法在不同场景下的表现,并对比不同算法的优缺点,为图像分割技术的进一步发展提供参考。

一、实验背景图像分割是指将图像划分成若干个具有独立语义的区域的过程。

图像分割技术在医学影像分析、自动驾驶、图像识别等领域都有着广泛的应用。

因此,对图像分割算法的研究和优化具有重要意义。

二、实验目的本实验旨在通过对比不同图像分割算法在不同场景下的表现,探究其优劣,并为图像分割技术的进一步发展提供参考。

三、实验内容1. 数据准备:收集不同场景下的图像数据,包括自然景观、医学影像、交通场景等。

2. 算法选择:选择常用的图像分割算法,如基于阈值的分割、边缘检测、区域生长等。

3. 实验设计:将不同算法应用于不同场景的图像数据上,对比它们的分割效果和计算速度。

4. 结果分析:对比不同算法的优缺点,并分析其适用场景和改进空间。

四、实验结果通过实验我们发现,在自然景观图像中,基于阈值的分割算法表现较好,能够有效地将图像分割成不同的颜色区域;而在医学影像中,边缘检测算法表现更为出色,能够准确地识别出器官的边缘;在交通场景中,区域生长算法表现较好,能够有效地区分不同的交通标志和车辆。

五、结论不同的图像分割算法在不同场景下有着不同的表现,没有一种算法能够适用于所有场景。

因此,我们需要根据具体的应用场景选择合适的图像分割算法,或者结合多种算法进行优化,以达到更好的分割效果。

六、展望未来,我们将继续探究图像分割算法的优化和改进,以适应不同场景下的需求。

同时,我们还将研究图像分割算法在深度学习和人工智能领域的应用,为图像分割技术的发展贡献力量。

通过本次实验,我们对图像分割算法有了更深入的了解,也为其在实际应用中的选择提供了一定的指导。

希望我们的研究能够为图像分割技术的发展做出一定的贡献。

实验2图像分割

实验2图像分割

实验2图像分割实验⼆、图像分割⼀、实验⽬的1、使学⽣通过实验体会⼀些主要的分割算⼦对图像处理的效果,以及各种因素对分割效果的影响;2、使⽤MatLab 软件进⾏图像的分割;3、能够⾃⾏评价各主要算⼦在⽆噪声条件下和噪声条件下的分割性能;4、能够掌握分割条件(阈值等)的选择;5、完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。

⼆、实验原理1、边缘检测(1)使⽤Roberts 算⼦的图像分割实验,调⼊并显⽰⼀幅图像*.gif或*.tif;使⽤Roberts 算⼦对图像进⾏边缘检测处理;Roberts 算⼦为⼀对模板,相应的矩阵为:rh = [0 1;-1 0]; rv = [1 0;0 -1];这⾥的rh 为⽔平Roberts 算⼦,rv为垂直Roberts 算⼦。

可以显⽰处理后的⽔平边界和垂直边界检测结果;⽤“欧⼏⾥德距离”⽅式计算梯度的模,显⽰检测结果;对于检测结果进⾏⼆值化处理,并显⽰处理结果。

(2)使⽤Prewitt 算⼦的图像分割实验使⽤Prewitt 算⼦进⾏内容(1)中的全部步骤。

(3)使⽤Sobel 算⼦的图像分割实验使⽤Sobel 算⼦进⾏内容(1)中的全部步骤。

(4)使⽤Canny算⼦进⾏图像分割实验。

(5) 使⽤拉普拉斯算⼦进⾏图像分割实验。

I=imread('D:\blood.bmp');Imshow(I);BW1=edge(I,'roberts');BW2=edge(I,'prewitt');BW3=edge(I,'sobel');BW4=edge(I,'log');BW5=edge(I,'canny');figure(1),imshow(I),title('Original Image'); figure(2),imshow(BW1),title('roberts'); figure(3),imshow(BW2),title('prewitt'); figure(4),imshow(BW3),title('sobel'); figure(5),imshow(BW4),title('log'); figure(6),imshow(BW5),title('canny');2、灰度阀值分割(1)单阈值分割图像先将⼀幅彩⾊图像转换为灰度图像,显⽰其直⽅图,参考直⽅图中灰度的分布,尝试确定阈值;应反复调节阈值的⼤⼩,直⾄⼆值化的效果最为满意为⽌。

图像分割实验报告

图像分割实验报告

图像分割实验报告医学图像处理实验报告实验名称:图像分割设计实验姓名:gaojunqiang学号:20105405班级:生医 1001指导教师:……2013年6月5日一、实验目的1、编程实现下列功能:读出存储的黑白灰度图象并显示,用拉普拉斯算子对图象进行边缘检测,显示处理后图象,存储处理后图象。

2、编程实现下列功能:读出存储的黑白灰度图象并显示,用鼠标点击图象上某一点,以灰度相近原则进行区域生长,显示处理后图象,存储处理后图象。

二、实验原理1、拉普拉斯边缘检测二维函数f(x,y)的拉普拉斯是一个二阶的微分定义为:,2f = [,2f / ,x2 ,,2f / ,y2]一般情况下可以用一个拉普拉斯模板算子。

模板算子分为4邻域和8邻域,如下,2f = 4z5 – (z2 + z4 + z6 + z8)0 1 01 -4 10 1 04邻域模板算子,2f = 8z5 – (z1 + z2 + z3 + z4+z5 + z6 + z7+ z8)1 1 11 -8 11 1 18邻域模板算子2、区域增长区域增长是通过一个起始点作为种子点对他周围的点进行选择。

它采取的是一种迭代的思想。

区域增长也分为四邻域和八邻域两种方式。

通过像素的集合进行区域增长的算法如下:1)根据图像的不同应用选择一个或一组种子,它或者是最亮或最暗的点,或者是位于点簇中心的点。

2)选择一个描述符(条件)3)从该种子开始向外扩张,首先把种子像素加入集合,然后不断将与集合中各个像素连通、且满足描述符的像素加入集合4)上一过程进行到不再有满足条件的新结点加入集合为止。

三、实验代码及结果1、拉普拉斯边缘检测代码如下:%主函数如下:clc;closeall;clearall;Imag = imread('lena.tiff');ImagGray = rgb2gray(Imag); %将彩色图片转换成灰度图片 figure()imshow(ImagGray),title('灰度图像');% T = graythresh(ImagGray); %用大津法自动确定阈值 %I=edge(ImagGray,'log',0.004);% figure(),imshow(I), title('laplace边缘图像'); ImagGray =double(ImagGray); T = 60; %设置阈值LapModType = 8; %设置laplace模板方式ImagLapEdge = LaplaceEdge(ImagGray,LapModType,T); %laplace边缘检测ImagLapEdge = uint8(ImagLapEdge);figure()imshow(ImagLapEdge),title('laplace边缘图像');%拉普拉斯边缘检测函数如下:functionImagLapEdge = LaplaceEdge(ImagGray,MoldType,Thresh)%-----------------参数介绍-------------------- %输入参数:% ImagGray: 输入的灰度图像% MoldType: 摸板类型,包括四邻域和八邻域 % Thresh: 边缘检测阈值%输出参数:% ImagEdge: 边缘像素点,存储的是二值化图像[r,c] = size(ImagGray); ImagLapEdge = zeros(r,c);%四邻域拉普拉斯边缘检测算子if 4 == MoldTypefori = 2:r-1for j = 2:c-1Temp =-4*ImagGray(i,j)+ImagGray(i-1,j)+ImagGray(i+1,j)+ImagGray(i,j-1)+ImagGray(i,j+1);if Temp > ThreshImagLapEdge(i,j) = 255; elseImagLapEdge(i,j) = 0; endendendend%八邻域拉普拉斯边缘检测算子if 8 == MoldTypefori = 2:r-1for j = 2:c-1Temp =-8*ImagGray(i,j)+ImagGray(i-1,j)+ImagGray(i+1,j)+ImagGray(i,j-1)+ImagGray(i,j+1)+ImagGray(i-1,j-1)+ImagGray(i+1,j+1)+ImagGray(i+1,j-1)+ImagGray(i-1,j+1);if Temp > ThreshImagLapEdge(i,j) = 255; elseImagLapEdge(i,j) = 0;endendendend拉普拉斯边缘检测实验结果如下:图1 原灰度图像2、区域增长实验代码:主函数如下:clc;closeall;clearall;Imag = imread('lena.jpg');figure()imshow(Imag), title('原灰度图片');n = 4; %设置区域增长的种子点数 [x,y] = ginput(n); %在图像上取点 V = [y,x];V = uint16(V);thresh = 33; %区域增长的阈值growingtype = 8; %增长方式[regionGet,imout,regionsize]=regiongrowing(V,Imag,thresh,growingtype ); %区域增长函数figure()imshow(imout), title('区域分割后的图片'); holdonplot(x,y,'+');由于区域增长代码老师已给这里就不在写出。

实验六-图像分割

实验六-图像分割

信息工程学院实验报告课程名称:数字图像处理实验项目名称:实验六图像分割实验时间:2016.12.16班级:姓名:学号:一、实验目的1. 使用MatLab 软件进行图像的分割。

使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响。

2. 要求学生能够自行评价各主要算子在无噪声条件下和噪声条件下的分割性能。

能够掌握分割条件(阈值等)的选择。

完成规定图像的处理并要求正确评价处理结果,能够从理论上作出合理的解释。

二、实验内容与步骤1.边缘检测(1)使用Roberts 算子的图像分割实验调入并显示图像room.tif图像;使用Roberts 算子对图像进行边缘检测处理;Roberts 算子为一对模板:(a)450方向模板(b)1350方向模板图 1 matlab 2010的Roberts算子模板相应的矩阵为:rh = [0 1;-1 0];rv = [1 0;0 -1];这里的rh 为45度Roberts 算子,rv为135度Roberts 算子。

分别显示处理后的45度方向和135方向的边界检测结果;用“欧几里德距离”和“街区距离”方式计算梯度的模,并显示检测结果;对于检测结果进行二值化处理,并显示处理结果。

提示:先做检测结果的直方图,参考直方图中灰度的分布尝试确定阈值;应反复调节阈值的大小,直至二值化的效果最为满意为止。

(2)使用Prewitt 算子的图像分割实验(a)水平模型(b)垂直模板图2. Prewitt算子模板使用Prewitt 算子进行内容(1)中的全部步骤。

(3)使用Sobel 算子的图像分割实验使用Sobel(a)水平模型(b)垂直模板图3. Sobel算子模板(4)使用LoG (拉普拉斯-高斯)算子的图像分割实验使用LoG (拉普拉斯-高斯)算子进行内容(1)中的全部步骤。

提示1:处理后可以直接显示处理结果,无须另外计算梯度的模。

提示2:注意调节噪声的强度以及LoG (拉普拉斯-高斯)算子的参数,观察处理结果。

图像分割处理实验报告

图像分割处理实验报告

一、实验目的:1.学会对图像进行二值化处理和直方图均衡化处理2.进一步了解数字图像处理的知识以及matlab软件的使用3.掌握基本的查资料方法二、实验内容把这幅图像分成同样大小的10幅人脸图片然后分别对第一行5幅人脸图像的第3 第4 第5 第二行5幅人脸图像的第1 第5 进行如下处理:1.进行大津法阈值分割的二值化处理2.进行直方图均衡化处理三、实验具体代码以及结果1.实验代码%clcclearsrc_path='D:\histogram matching.bmp'; %原始图片路径dst_path='D:\picture\'; %分割图片后保存路径mkdir(dst_path);A = imread(src_path); %读入原始图片[m,n,l] = size(A); %获得尺寸for i = 1:2for j = 1:5m_start=1+(i-1)*fix(m/2);m_end=i*fix(m/2);n_start=1+(j-1)*fix(n/5);n_end=j*fix(n/5);AA=A(m_start:m_end,n_start:n_end,:); %将每块读入矩阵imwrite(AA,[dst_path num2str(i) '-' num2str(j) '.jpg'],'jpg'); %保存每块图片endendcd 'D:\pic'x1=imread('1-3.jpg');%%%%%%%%%目标读取图像x2=imread('1-4.jpg');x3=imread('1-5.jpg');x4=imread('2-1.jpg');x5=imread('2-5.jpg');% matlab 自带的自动确定阈值的方法level1=graythresh(x1);level2=graythresh(x2);level3=graythresh(x3);level4=graythresh(x4);level5=graythresh(x5);%用得到的阈值直接对图像进行二值化处理并显示BW1=im2bw(x1,level1);BW2=im2bw(x2,level2);BW3=im2bw(x3,level3);BW4=im2bw(x4,level4);BW5=im2bw(x5,level5);figure(1),imshow(BW1);figure(2),imshow(BW2);figure(3),imshow(BW3);figure(4),imshow(BW4);figure(5),imshow(BW5);%直方图均衡化处理%%%%%%%%%%调用直方图均衡化函数 histeq()%%%%%均衡化处理后的灰度级直方图分布figure(6),imhist(histeq(rgb2gray(x1))); figure(7),imhist(histeq(rgb2gray(x2))); figure(8),imhist(histeq(rgb2gray(x3))); figure(9),imhist(histeq(rgb2gray(x4))); figure(10),imhist(histeq(rgb2gray(x5)));%%%均衡化处理后的图像%%%%%%figure(11),imshow(histeq(rgb2gray(x1))); figure(12),imshow(histeq(rgb2gray(x2))); figure(13),imshow(histeq(rgb2gray(x3))); figure(14),imshow(histeq(rgb2gray(x4))); figure(15),imshow(histeq(rgb2gray(x5)));。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告课程名称医学图像处理实验名称图像分割专业班级姓名学号实验日期实验地点2015—2016学年度第 2 学期050100150200250图1 原图 3 阈值分割后的二值图像分析:手动阈值分割的阈值是取直方图中双峰的谷底的灰度值作为阈值,若有多个双峰谷底,则取第一个作为阈值。

本题的阈值取80。

%例2 迭代阈值分割f=imread('cameraman.tif'); %读入图像subplot(1,2,1);imshow(f); %创建一个一行二列的窗口,在第一个窗口显示图像title('原始图像'); %标注标题f=double(f); %转换位双精度T=(min(f(:))+max(f(:)))/2; %设定初始阈值done=false; %定义开关变量,用于控制循环次数i=0; %迭代,初始值i=0while~done %while ~done 是循环条件,~ 是“非”的意思,此处done = 0; 说明是无限循环,循环体里面应该还有循环退出条件,否则就循环到死了;r1=find(f<=T); %按前次结果对t进行二次分r2=find(f>T); %按前次结果重新对t进行二次分Tnew=(mean(f(r1))+mean(f(r2)))/2; %新阈值两个范围内像素平均值和的一半done=abs(Tnew-T)<1; %设定两次阈值的比较,当满足小于1时,停止循环,1是自己指定的参数T=Tnew; %把Tnw的值赋给Ti=i+1; %执行循坏,每次都加1endf(r1)=0; %把小于初始阈值的变成黑的f(r2)=1; %把大于初始阈值的变成白的subplot(1,2,2); %创建一个一行二列的窗口,在第二个窗口显示图像imshow(f); %显示图像title('迭代阈值二值化图像'); %标注标题图4原始图像图5迭代阈值二值化图像分析:本题是迭代阈值二值化分割,步骤是:1.选定初始阈值,即原图大小取平均;2.用初阈值进行二值分割;3.目标灰度值平均背景都取平均;4.迭代生成阈值,直到两次阈值的灰度变化不超过1,则稳定;5.输出迭代结果。

%例3 Laplacian算子和模板匹配法I=imread('cameraman.tif'); %读入图像subplot(1,3,1);imshow(I); %创建一个一行三列的窗口,在第一个窗口显示图像title('原图像'); %标注标题H=fspecial('laplacian'); %生成laplacian滤波器laplacianH=filter2(H,I); %以laplacian为模板对图像I进行锐化滤波subplot(1,3,2); %创建一个一行三列的窗口,在第二个窗口显示图像imshow(laplacianH); %显示图像title('laplacian算子锐化图像'); %标注标题H=fspecial('prewitt'); %生成Prewitt滤波器prewittH=filter2(H,I); %以prewitt为模板对图像I进行锐化滤波subplot(1,3,3); %创建一个一行三列的窗口,在第三个窗口显示图像imshow(prewittH); %显示图像title('prewitt模板锐化图像'); %标注标题图6原图像图7laplacian算子锐化图像图8prewitt模板锐化图像分析:从结果图可以看出,laplacian算子对边缘的处理更明显,它是二阶微分算子,能加强边缘效果,对噪声很敏感,Prewitt算子是平均滤波的一阶的微分算子,不仅能检测边缘点,而且能抑制噪声的影响。

%例4 不同边缘检测方法比较f=imread('cameraman.tif'); %读取图像subplot(2,2,1);imshow(f); %创建一个二行二列的窗口,在第一个窗口显示图像title('原始图像'); %标注标题[g,t]=edge(f,'roberts',[],'both'); %用roberts检测器对图像进行边缘检测,阈值自动选取,检测边缘方向(双向)为bothsubplot(2,2,2);imshow(g); %创建一个二行二列的窗口,在第二个窗口显示图像title('Roberts算子分割结果'); %标注标题[g,t]=edge(f,'sobel',[],'both'); %用sobel检测器对图像进行边缘检测,阈值自动选取,检测边缘方向(双向)为bothsubplot(2,2,3);imshow(g); %创建一个二行二列的窗口,在第三个窗口显示图像title('Sobel算子分割结果'); %标注标题[g,t]=edge(f,'prewitt',[],'both'); %用prewitt检测器对图像进行边缘检测,阈值自动选取,检测边缘方向(双向)为bothsubplot(2,2,4);imshow(g); %创建一个二行二列的窗口,在第四个窗口显示图像title('prewitt算子分割结果'); %标注标题图9原始图像图10 Roberts算子分割结果图像图11 Sobel算子分割结果图像图12 prewitt算子分割结果图像分析:从结果图可以看出,Prewitt 和 Sobel 算子分割效果比 Roberts 效果要好一些,提取边缘较完整,其边缘连续性较好。

但是这三种算子的边缘的连续性都不太好,这时我们需要采用霍夫变换使间断变成连续,连接边缘。

思考题1.分析Sobel算子特点,并给予说明。

f=imread('skull.tif'); %读取图像f=double(f); %转化图像f的类型为双精度subplot(3,3,1); %创建有3*3子图像的窗口,原图在位置1imshow(f,[]); %显示原图像ftitle('原始图像'); %给图像加标题为'原始图像'J=imnoise(f,'gaussian',0.02); %对图像加高斯噪声subplot(3,3,2); %创建有3*3子图像的窗口,原图在位置2imshow(J,[]); %显示加噪声的图像title('加高斯噪声图像'); %给图像加标题为'加高斯噪声图像'[g1,t]=edge(f,'sobel',[],'both'); %用sobel检测器对原图像进行边缘检测,阈值自动选取,检测边缘方向(双向)为both[g2,t]=edge(J,'sobel',[],'both'); %用sobel检测器对加噪图像进行边缘检测,阈值自动选取,检测边缘方向(双向)为both[g3,t]=edge(f,'sobel',[],'vertical'); %用sobel检测器对原图像进行边缘检测,阈值自动选取,检测边缘方向为垂直方向[g4,t]=edge(J,'sobel',[],'vertical'); %用sobel检测器对加噪图像进行边缘检测,阈值自动选取,检测边缘方向为垂直方向[g5,t]=edge(f,'sobel',[],'horizontal'); %用sobel检测器对原图像进行边缘检测,阈值自动选取,检测边缘方向为水平方向[g6,t]=edge(J,'sobel',[],'horizontal'); %用sobel检测器对加噪图像进行边缘检测,阈值自动选取,检测边缘方向为水平方向subplot(3,3,3); %创建有3*3子图像的窗口,图在位置3 imshow(g1); %显示经sobel算子处理后的图像title('sobel算子双向分割结果'); %给图像加标题为‘sobel算子双向分割结果’subplot(3,3,4);imshow(g2);title('加噪后sobel双向分割结果'); %在3*3子图像的位置4显示加噪后sobel双向分割结果图像subplot(3,3,5);imshow(g3);title('sobel水平方向分割结果'); %在3*3子图像的位置5显示sobel水平方向分割结果结果图像subplot(3,3,6);imshow(g4);title('加噪后sobel水平方向分割结果'); %在3*3子图像的位置6显示加噪后sobel水平方向分割结果图像subplot(3,3,7);imshow(g5);title('sobel垂直方向分割结果'); %在3*3子图像的位置7显示sobel垂直方向分割结果图像subplot(3,3,8);imshow(g6);title('加噪后sobel垂直方向分割结果'); %在3*3子图像的位置8显示加噪后sobel垂直方向分割结果图像图13原始图像图14加高斯噪声图像图15sobel算子双向分割结果图像图16加噪后sobel双向分割图图17sobel水平方向分割图图18加噪后sobel水平分割图图19sobel垂直方向分割结果图像图20加噪后sobel垂直方向分割结果图像分析:Sobel相对于先对图像进行加权平均再做差分。

在边缘检测中,常用的一种模板是Sobel 算子。

Sobel 算子有三个,一个是检测双向边缘的,一个是检测水平边缘的;另一个是检测垂直边缘的。

由于Sobel算子是一节微分滤波算子的,用于提取边缘,有方向性,从结果可以看出双向both的分割效果最好。

缺点:Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能令人满意。

2.分析laplacian算子特点,并解释它为何能增强图像的边缘?I=imread('skull.tif'); %读取原图subplot(2,3,1),imshow(I,[]);title('原图像') %在2*3子图像的位置1显示原图像H1=fspecial('laplacian',0); %生成Laplacian算子滤波器,滤波器的标准差为0,说明H1模板的中间系数是-4H2=fspecial('laplacian'); %生成Laplacian算子滤波器,滤波器的标准差为默认值0.2,说明H2模板的中间系数是-3.333 H3=fspecial('laplacian',1); %生成Laplacian算子滤波器,滤波器的标准差为1,说明H3模板的中间系数是-2J=imnoise(I,'salt & pepper',0.02); %添加椒盐噪声subplot(2,3,2),imshow(J,[]);title('添加椒盐噪声图像') %在2*3子图像的位置3显示添加椒盐噪声图像I1=imfilter(I,H1); %用H1模板进行均值滤波subplot(2,3,3),imshow(I1,[]);title('HI模板laplacian算子滤波结果') %在2*3子图像的位置3显示'HI模板laplacian算子滤波结果图像I2=imfilter(I,H2); %用H2模板进行均值滤波subplot(2,3,4),imshow(I2,[]);title('H2模板laplacian算子滤波结果') %在2*3子图像的位置4显示H2模板laplacian算子滤波结果图像I3=imfilter(I,H3); %用H3模板进行均值滤波subplot(2,3,5),imshow(I3,[]);title('H3模板laplacian算子滤波结果') %在2*3子图像的位置5显示H3模板laplacian算子滤波结果图像图21原图像图22添加椒盐噪声图像图23 HI模板laplacian算子滤波图图 24 H2模板laplacian算子滤波结果图像图25H3模板laplacian算子滤波结果图像分析:laplacian算子对边缘的处理明显,它是二阶微分算子,能加强边缘效果,对噪声很敏感。

相关文档
最新文档