实验四 图像边缘检测
图像增强和边缘检测实验报告

图像增强和边缘检测实验内容1)将Image1.jpg 转换为灰度图像A。
2)读懂文档(图像直方图均衡化.doc),利用里面的方法通过编程对图像A进行直方图均衡化处理,得到处理后的图像B。
显示图像A和B,以及各自对应的灰度直方图。
3)利用锐化方法(教材118-120页),编制程序,对图像A和B分别使用罗伯特梯度,索伯尔梯度,拉普拉斯方法,进行处理,比较哪种求边缘的方法好,以及进行图像的直方图均衡化后能否提高求边缘的精确度。
4)撰写报告书,说明实验的步骤和方法,实验的结果等。
5)提交报告书以及源程序实验步骤和方法1)调用rgb2gray()函数将Image1.jpg 转换为灰度图像A。
并将图像A保存到f和I1中。
2)统计图像A中的像素并进行均衡化处理并将结果保存到B,显示图像A和B;调用imhist()函数显示两图像的灰度直方图。
3)编制罗伯特锐化函数,设定两个模板t1=[1,0;0,-1] t2=[0,-1;1,0],调用conv2()函数获得图像和两个模板的卷积并取绝对值相加获得罗伯特锐化结果,缩小结果图像。
4)编制索伯尔锐化函数,设定两个模板t1=[1,2,1;0,0,0;-1,-2,-1] t2=[-1,0,1;-2,0,2;-1,0,1] ,其余步骤与罗伯特锐化相似。
5)编制拉普拉斯锐化函数,设定模板t(m,n)=[0,1,0;1,-4,1;0,1,0],将待处理图像与模板卷积,并用原图像的至减去模板运算结果的整数倍,将结果缩小化到原图像大小既得拉普拉斯锐化结果。
6)函数整合,将编制好的3)、4)、5)三个函数整合到2)的程序后面并加以调整,分别对图像A和B进行锐化,并将结果输出到2*4的图框中进行对比实验结果1)2)3)通过比较可以发现罗伯特算法要比索伯尔算法差一些,索伯尔算法可以使检测边界更加精确;拉普拉斯算法相对于索伯尔算法对比度更高一些边缘更加明显和精确。
通过对比AB 两图锐化后的结果可知无论使用那一种锐化算法,都是均衡化后的图像B的锐化结果更好一些,边缘更加明显,所以可以得出结论:直方图均衡化可以提高求边缘的精度。
实验四 图像的边缘检测

实验四图像的边缘检测一、实验目的与要求1、了解图像边缘提取的基本概念;2、了解进行边缘提取的基本方法;3、编程实现对所给图像的边缘进行提取。
二、知识点1、边缘检测的思想和原理图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。
边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。
边缘检测实际上就是检测图像特征发生变化的位置。
由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。
边缘检测的方法大多数是基于方向导数掩模求卷积的方法。
导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。
一阶导数是最简单的导数算子,它们分别求出了灰度在x和y方向上的变化率,而方向上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导,差分公式参考相关教材。
2、常用的梯度算子(1)Roberts Cross算子,它的2个2 X2模板如图3所示。
图3 Robert Cross算子模板(2)Prewitt 算子,它的2个3×3模板如图4所示。
图4 Prewitt算子模板(3)Sobel 算子,它的2图3 Sobel算子模板3、高斯拉普拉斯(Log)算法高斯拉普拉斯(Log)算法是一种二阶边缘检测方法。
它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing)来检测边缘点。
实验四 图像的边缘检测1

3、用不同方向(‘水平’、‘垂直’、‘水平和垂直’)的Sobel算子对图像进行边缘检测。比较三种情况的结果。
代码:
I=imread('rice.png');
subplot(2,2,1)
imshow(I)
BW2=edge(I,'sobel',[] ,'horizontal');
subplot(2,2,2)
代码:
I=imread(‘cameraman.tif’);
imshow(I);
结果:
2、分别用Roberts、Sobel和拉普拉斯高斯算子对图像进行边缘检测。比较三种算子处理的结果。
代码:
I=imread('rice.png');
subplot(2,2,1)
imshow(I)
BW1=edge(I,'roberts');
掌握了用MATLAB语言进行图像边缘提取的方法。
imshow(BW2), title('水平方向的Sobel算子')
BW2=edge(I,'sobel',[] ,'vertical');
subplot(2,2,3)
imshow(BW2), title('´垂直方向的Sobel算子')
BW2=edge(I,'sobel',[] ,'both');
subplot(2,2,4)
20122013学年第一学期医学图像处理实验报告班级学号姓名实验时间20121030实验地点4601实验成绩实验题目图像的边缘检测一实验目的1理解图像边缘提取的基本概念
2012-2013学年第一学期《医学图像处理》实验报告
边缘检测实验报告

图像边缘提取实验报告一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。
二、实验原理检测图像边缘信息,可以把图像看做曲面,边缘就是图像的变化最剧烈的位置。
这里所讲的边缘信息包含两个方面:一是边缘的具体位置,即像素的坐标;而是边缘的方向。
微分算子有两个重要性质:定域性(或局部性)、敏感性(或无界性)。
敏感性就是说,它对局部的函数值变化很敏感,但是因其对变化过于敏感又有了天然的缺陷——不能抵抗噪声。
局部性意思是指,每一点的导数只与函数在该点邻近的信息有关。
主要有两大类基于微分算子的边缘检测技术:一阶微分算子边缘检测与二阶微分算子边缘检测。
这些检测技术采用以下的基本步骤:(1)将相应的微分算子简化为离散的差分格式,进而简化为模板(记为T)。
(2)利用模板对图像f(m,n)进行运算,获得模板作用后的结果Tf(m,n)。
(3) 提出阈值h,在采用一阶微分算子情形记录下高于某个阈值h 的位置坐标}),(|),{(h n m Tf n m S h ≥=(而采用二阶微分算子情形,一般是对某个阈值0>ε确立}),(|),{(ε≥=n m Tf n m S h )(4) 对集合h S 进行整理,同时调整阈值h 。
Roberts 算子Roberts 算子是一种利用局部差分算子寻找边缘的算子,两个模板分别为⎥⎦⎤⎢⎣⎡-=1001x R ⎥⎦⎤⎢⎣⎡-=0110y R 则,),(j i f R x =)1,1(),(++-j i f j i f),(j i f R y =)1,(),1(+-+j i f j i f算法的步骤为:(1) 首先用两个模板分别对图像作用得到f R x 和f R y ;(2) 对22),(y x R R j i Tf +=,进行阈值判决,若),(j i Tf 大于阈值则相应的点 位于便于边缘处。
实验 四 图像分割与边缘检测

实验四图像分割与边缘检测一.实验目的及要求1.利用MATLAB研究图像分割与边缘检测的常用算法原理;2.掌握MATLAB图像域值分割与边缘检测函数的使用方法;3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。
二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。
熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。
1.图像阈值分割clear all, close all;I = imread('cameraman.tif');figure (1),imshow(I)figure(2); imhist(I)T=120/255;Ibw1 = im2bw(I,T);figure(3);subplot(1,2,1), imshow(Ibw1);T=graythresh(I);L = uint8(T*255)Ibw2 = im2bw(I,T);subplot(1,2,2), imshow(Ibw2);help im2bw;help graythresh;clear all, close all;I = imread('cameraman.tif');figure (1),imshow(I)figure(2); imhist(I)T=240/255;Ibw1 = im2bw(I,T); figure(3);subplot(1,2,1), imshow(Ibw1); T=graythresh(I);L = uint8(T*255)Ibw2 = im2bw(I,T);subplot(1,2,2), imshow(Ibw2); help im2bw;help graythresh;clear all, close all;I = imread('cameraman.tif');figure (1),imshow(I)figure(2); imhist(I)T=120/255;Ibw1 = im2bw(I,T);figure(3);subplot(1,2,1), imshow(Ibw1);T=graythresh(I);L = uint8(T*255)Ibw2 = im2bw(I,T);subplot(1,2,2), imshow(Ibw2);help im2bw;help graythresh;2.边缘检测clear all, close all;I = imread('moon.tif');BW1 = edge(I,'sobel');BW2 = edge(I,'canny');BW3 = edge(I,'prewitt');BW4 = edge(I,'roberts');BW5 = edge(I,'log');figure(1), imshow(I), title('Original Image');figure(2), imshow(BW1), title('sobel');figure(3), imshow(BW2), title('canny');figure(4), imshow(BW3), title('prewitt');figure(5), imshow(BW4), title('roberts');figure(6), imshow(BW5), title('log');help edgeedgedemo(二)利用MATLAB熟悉并验证其它图像分割方法灰度阈值分割:I=imread('C:\Users\Administrator\Desktop\rice.jpg'); I=rgb2gray(I);I2=im2bw(I);figure,imshow(I2);I2=im2bw(I,140/255);figure,imshow(I2)区域分割法:I=imread('eight.tif'); imshow(I)c=[222 272 300 270 221 194]; r=[212175121 12175];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)分水岭分割法:f=imread('C:\Users\Administrator\Desktop\cell.jpg');imshow(f);g=im2bw(f, graythresh(f));figure,imshow(g);gc=~g;D=bwdist(gc);L=watershed(-D);w=L==0;g2=g&~w;figure,imshow(g2)(三)采用MATLAB编程实现自动全局阈值算法,对图像'rice.tif'进行二值化分割算法步骤:1)选取一个的初始估计值T;2)用T分割图像。
图像的边缘检测实验报告

图像的边缘检测实验报告
《图像的边缘检测实验报告》
图像的边缘检测是计算机视觉领域中的重要技术之一,它可以帮助我们识别图
像中物体的边缘和轮廓,从而实现图像分割、特征提取和目标识别等应用。
在
本次实验中,我们将对几种常用的边缘检测算法进行比较和分析,以评估它们
在不同场景下的性能和适用性。
首先,我们使用了Sobel算子进行边缘检测。
Sobel算子是一种基于梯度的边缘检测方法,它通过对图像进行卷积操作来寻找像素值变化最大的地方,从而找
到图像中的边缘。
实验结果显示,Sobel算子在一些简单场景下表现良好,但
在复杂背景和噪声干扰较大的情况下效果不佳。
接着,我们尝试了Canny边缘检测算法。
Canny算法是一种多阶段的边缘检测
方法,它通过对图像进行高斯滤波、计算梯度、非极大值抑制和双阈值处理等
步骤来检测图像中的边缘。
实验结果显示,Canny算法在复杂场景下表现出色,能够有效地抑制噪声并找到图像中的真实边缘。
最后,我们还尝试了Laplacian算子和Prewitt算子等其他边缘检测算法,并对
它们的性能进行了比较和分析。
实验结果显示,不同的边缘检测算法在不同场
景下表现出各自的优势和劣势,需要根据具体的应用需求来选择合适的算法。
总的来说,本次实验对图像的边缘检测算法进行了全面的比较和分析,为我们
进一步深入理解和应用这些算法提供了重要的参考和指导。
希望通过这些实验
结果,我们能够更好地利用边缘检测技术来解决实际的图像处理问题,为计算
机视觉领域的发展做出更大的贡献。
详细的图像分割之边缘检测实验报告

边缘检测实验报告一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。
二、实验原理:图像处理有两大类目的:1.改善像质(增强、恢复);2.图像分析:对图像内容作出描述;其一般的图像处理过程如下:图像分割的算法有:(1)阈值分割原理:(,)(,)(,)EBL f x y T g x y L f x y T≥⎧=⎨<⎩(2)边缘检测:梯度对应一阶导数,对于一个连续图像函数f(x,y):梯度矢量定义:梯度的幅度:梯度的方向:a) Roberts 算子b) Sobel 算子Roberts 算子[]TTyxy f x f G G y x f ⎥⎦⎤⎢⎣⎡∂∂∂∂==∇),(122)()),((),(y x G G y x f mag y x f +=∇=∇)arctan(),(x y G y x =φ()()()[]()()[]{}21221,,11,1,,+-++++-=j i f j i f j i f j i f j i gc) Prewitt 算子d) Kirsch 算子由K 0~K 7八个方向模板组成,将K0~K7的模板算法分别与图像中的3×3区域乘,选最大一个值,作为中央像素的边缘强度(3)区域分割1 区域生长法 算法描述先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相似性质的像素合并到种子像素所在的区域中。
将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。
2 分裂合并法实际中常先把图像分成任意大小且不重叠的区域,然后再合并或分裂这些区域以满足分割的要求,即分裂合并法.一致性测度可以选择基于灰度统计特征(如同质区域中的方差),假设阈值为T ,则算法步骤为:① 对于任一Ri ,如果 ,则将其分裂成互不重叠的四等分; ② 对相邻区域Ri 和Rj ,如果 ,则将二者合并; ③ 如果进一步的分裂或合并都不可能了,则终止算法。
图像处理实验报告实验目的:图像边缘检测和提取:分别用4和8连通的

图像处理实验报告实验目的:图像边缘检测和提取:分别用4和8连通的方法提取图像的边缘,将提取的边缘坐标保存入文本文件,并能通过读取文本文件恢复边缘图像。
实验原理:有两种方法可以提取边缘点:一.轮廓跟踪按照从左到右,从上到下的顺序搜索,找到的第一个黑点一定是最左下的边界点,记为A。
由于边界是连续的,所以每一个边界点都可以用这个边界点对前一个边界点所张的角度来表示。
因此可用下面跟踪准则:从第一个边界点开始,定义初始的搜索方向为沿左上方;如果左上方的点是黑点,则为边界点,否则搜索方向顺时针旋转45度(8连通方法为90度)。
这样一直到找到第一个黑点为止。
然后把这个黑点作为新的边界点,在当前搜索方向的基础上逆时针旋转90度,继续用同样的方法搜索下一个黑点,直到返回最初的边界点为止。
二.轮廓提取二值图图像轮廓提取,掏空内部,如果原图中有一点为黑色,且它的相邻点为黑色(此时是内部点),则将该点删除。
取4个相邻点则为4连通,8个相邻点则为8连通。
根据本实验中图像,为简单的二值图,且有3个黑块,用第一种方法不易跟踪,所以选用第二种方法较简单。
实现方法:所用4连通与8连通方法区别仅是选取的相邻点个数不同,实现方法基本一致,所以不分开论述。
步骤:1.遍历原图像每个像素,如果此像素及周围的点(4个或8个)都为黑点,则该像素认为是内部点,将其删除。
遍历一边,等于掏空图像内部点,仅剩边缘点。
2.用一个结构数组存储图像边缘点的坐标。
在一个新建的文本文件中依次写入图像高度和宽度,边缘像素点总个数,每个边缘点的坐标。
此步骤完成边缘的提取。
3.打开一个新pic图像,读取指定文本文件中的数据,即步骤2中存储内容。
然后在新打开的图像中改变图像高度和宽度,依读入的坐标点将相应点变为黑色,恢复边缘。
此步骤完成边缘的恢复。
4连通和8连通算法的比较:1.4连通算法中检测四个方向的像素点,会将图像内部更多的黑色点腐蚀,所留下的边界是8连通的。
8连通算法相反,所留下的边界是4连通的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四图像边缘检测
一、实验目的
1)掌握图像典型边缘的基本特点;
2)掌握梯度应用图像边缘检测的基本原理;
3)掌握利用典型一阶微分边缘检测算子进行边缘检测的基本方法;
4)掌握利用典型二阶微分边缘检测算子进行边缘检测的基本方法;
5)通过编程,上机调试程序,总结归纳,培养使用计算机进行图像处理算
法设计的能力。
二、实验原理
1. 图像的边缘
边缘检测技术对于数字图像处理非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。
边缘检测实际上就是检测图像特征发生变化的位置。
一幅未受污染、层次丰富的图像中,大部分区域的灰度变化是比较平缓的,构成了图像的主基调,少部分区域灰度变化剧烈且具有连续性,形成视觉冲击力。
灰度变化形式包括斜坡型、阶梯型、孤立型等等。
这些变化着的区域中包含着图像的边缘信息。
如果把图像看成一个曲面,那么边缘处灰度值存在剧烈变化,可视为图像的基本特征,如图1所示。
边缘常被定义为图像中那些邻域灰度有强烈反差的像素集合。
边缘检测的目的就是突出这些灰度明显变化的点集。
边缘检测算子主要借助于空域微分算子,通过模板与图像卷积来完成。
图1 图像及其三维曲面示意
2. 基于一阶微分的边缘检测
数学中的微分运算用于反映事物变化的程度,在边缘处像素点的导数(可以是关于的一阶导数或关于的二阶导数)必定要高过非边缘区域处的点。
可
用于揭示图像灰度变化的快慢。
图像的水平微分和垂直微分定义如下:
这里根据像素点的离散分布,将求导变成差分运算。
显然一阶微分发生在两相邻像素之间,若将坐标轴旋转45度,一阶微分可发生在两对角像素之间。
这种定义满足了以下几点要求:(1)在灰度不变或变化缓慢区域的微分值为零或近似于零;(2)在灰度阶梯型变化或斜坡型变化中,微分值明显不为零;(3)沿斜坡面微分值非零。
总体而言,梯度能较好地表达一阶微分的含义,梯度可定义为一个二维列向量:
图像在某像素点处的梯度向量反映了其在该点处的像素值变化情况,相应的梯度值反映了变化的速度。
向量的模值为
因此可用如下表达式来求取图像边缘
在图像处理和分析领域中,常利用图像梯度进行边缘提取和锐化操作,在无噪声图像处理中能够得到较好的结果。
但对于带噪图像,梯度方法无法识别噪声与边缘,边缘提取结果往往增强了噪声。
和图像空域平滑模板类似,微分运算也可以模板方式表达,称为“算子”,基于一阶导数的算子为一阶微分算子,如Sobel、Priwitt及Roberts算子等。
水平和垂直方向的Sobel算子为
其幅度值可表示为,为简化计算也可表示为。
图2示意了
Sobel算子的检测效果。
图2 Sobel算子检测效果
水平和垂直方向的Prewitt算子为
其幅度值可表示为,为简化计算也可表示为。
图3示
意了Prewitt算子的检测效果。
Roberts算子模板为
其幅度值可表示为,为简化计算也可表示为。
图4示意了
Roberts算子的检测效果。
图4 Roberts算子检测效果
3.基于二阶微分的边缘检测
和一阶微分用差分处理类似,图像二阶微分可表示为
义Laplace算子
缘检测。
而代替以高斯型的Laplace算子(LoG):
LoG算子的5×5近似模板化可由如下矩阵表达
图5示意了LoG算子的检测效果。
图5 LoG算子的检测效果
通过比较图像在不同方法检测下的输出幅值、侧重点等视觉效果可大致评估各类边缘检测算子的灵敏度、边缘定位精度等能力。
此外,模拟图像在不同噪声环境下的边缘检测输出也可评估不同边缘检测算子的鲁棒性。
三、主要实验仪器及材料
微型计算机、Matlab 6.5教学版。
四、实验内容
1.知识准备
认真复习以上基础理论,理解本实验所用到的实验原理。
2.图像一阶微分边缘检测
1)分别利用Sobel算子的水平、垂直、综合等三个模板来检测图像边缘,改
变图像类型,分析这三个模板的检测特点。
2)分别利用Prewitt算子的水平、垂直、综合等三个模板来检测图像边缘,
改变图像类型,分析这三个模板的检测特点。
3)分别利用Roberts算子的45度、135度、综合等三个模板来检测图像边缘,
改变图像类型,分析这三个模板的检测特点。
4)利用imnoise函数为图像添加高斯、椒盐噪声,改变参数,初步分析这三
类边缘检测算子对噪声图像的检测能力。
3.图像二阶微分边缘检测
1)利用LoG算子对图像进行边缘检测,改变图像类型,分析该模板的检测
特点;
2)利用imnoise函数为图像添加高斯、椒盐噪声,改变参数,初步分析这
LoG边缘检测算子对噪声图像的检测能力。
3)简要比较一阶微分边缘检测Sobel算子和二阶微分检测LoG算子的抗噪
声能力及边缘定位能力。
4.上机调试程序并打印或记录实验结果。
5.完成实验报告。
五、实验报告要求
1)简述实验原理及目的。
2)给出上述实验内容的实验结果。
3)分析图像边缘的灰度变化特点,给出一阶微分边缘检测算子(Sobel、
Prewitt、Roberts)、一阶微分边缘检测算子(LoG)的检测原理,分析一
阶微分边缘检测算子代表(Sobel)和二阶微分边缘检测算子代表(LoG)
的差异,画出程序框图,并列出实验程序清单(可略)(包括必要的程
序说明)。
4)记录调试运行情况及所遇问题的解决方法。
5)给出实验结果,并对结果做出分析。
6)简要回答思考题。
(A) 为什么梯度算子能够用来估计图像边缘方向?Sobel算子经过改进
后能够估计图像边缘方向吗?如何改进?(这里只需将方向量化为8方
向)
(B) Laplace算子为什么不以其原始形式用于边缘检测?。