实验四 图像边缘检测

合集下载

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

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

图像增强和边缘检测实验内容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

实验四  图像的边缘检测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连通的

图像处理实验报告实验目的:图像边缘检测和提取:分别用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连通的。

实验4图像分割及边缘检测

实验4图像分割及边缘检测

实验4 图像分割及边缘检测应电101黎杰良201036626115一、实验目的:理解图像分割和边缘检测的概念,利用Matlab图像处理函数实现图像的分割,并实现边缘的提取。

二、实验内容:1、学习并应用阈值分割im2bw函数, 利用直方图来选取阈值,对已知图像进行二值化分割。

2、学习用常见的Roberts算子、Sobel算子、Prewitt算子、Laplacian算子、Canny算子等微分算子检测图像边缘三、实验要求:提交原图像和各种直方图曲线,以及按直方图处理后的图像。

四、实验步骤1、阈值分割(1)阅读im2bw ,imhist的帮助文件;>> help im2bwIM2BW Convert image to binary image by thresholding.IM2BW produces binary images from……………Example-------load treesBW = im2bw(X,map,0.4);imshow(X,map), figure, imshow(BW)See also GRAYTHRESH, IND2GRAY, RGB2GRAY.>> help imhistIMHIST Display histogram of image data.IMHIST(I) displays a histogram for…………Example-------I = imread('pout.tif');imhist(I)See also HISTEQ, HIST.(2)读入一幅图像,使用imhist( )函数产生图像的直方图,分析它的直方图分布,选取分割的阈值;选取阀值T=160/255(3)用BW=im2bw(I,T)函数,实现阈值分割。

选取阀值T=160/2552、边缘检测(1)阅读edge的帮助文件;>> help edgeEDGE Find edges in intensity image.EDGE takes an intensity or a binary image I as its input, and ………Example-------Find the edges of the rice.tif image using the Prewitt and Cannymethods:I = imread('rice.tif');BW1 = edge(I,'prewitt');BW2 = edge(I,'canny');imshow(BW1)figure, imshow(BW2)See also FSPECIAL.(2)用BW=edge(I,methold)函数,实现图像的边缘检测;(3)比较不同算子的边缘检测效果。

图像的边缘检测(实验报告)

图像的边缘检测(实验报告)

数字信号处理实验图像的边缘检测图像的边缘检测一,原理本实验主要是对图像的边缘进行提取,通过对边缘的分析来分析图像的特征。

首先,了解一些术语的定义:边缘点:图像中具有坐标[i,j]且处在强度显著变化的位置上的点。

边缘段:对应于边缘点坐标[i,j]及其方位 ,边缘的方位可能是梯度角。

边缘检测器:从图像中提取边缘(边缘点和边缘段)集合的算法。

轮廓:边缘列表,或者是一条表示边缘列表的拟合曲线。

边缘连接:从无序边缘表形成有序边缘表的过程,习惯上,边缘表的表示采用顺时针方向来排序。

边缘跟踪:一个用来确定轮廓的图像(指滤波后的图像)搜索过程。

边缘就是图像中包含的对象的边界所对应的位置。

物体的边缘以图像局部特性的不连续性的形式出现的,例如,灰度值的突变,颜色的突变,纹理结构的突变等。

从本质上说,边缘就意味着一个区域的终结和另外一个区域的开始。

图像边缘信息在图像分析和人的视觉中十分重要,是图像识别中提取图像特征的一个重要属性。

边缘检测(edge detection)在图像处理和对象识别领域中都是一个重要的基本问题。

由于边缘的灰度不连续性,可以使用求导数的方法检测到。

最早的边缘检测方法都是基于像素的数值导数的运算。

本实验主要是对图像依次进行Sobel算子,Prewitt算子,Roberts算子,Laplace算子和Canny算子运算,比较处理结果。

边缘检测有三个共性准则,1,好的检测结果,或者说对边缘的误测率尽可能低,就是在图像边缘出现的地方检测结果中不应该没有;另一方面不要出现虚假的边缘。

2,对边缘的定位要准确,也就是我们标记出的边缘位置要和图像上真正边缘的中心位置充分接近。

3,对同一边缘要有尽可能低的响应次数,也就是检测响应最好是单像素的。

二,对图像进行各种算子运算本实验中主要是对图像依次进行Sobel算子,Prewitt算子,Roberts算子,Laplace算子和Canny 算子运算。

由于MATLAB对彩色图像不能进行分析。

实验四数字图像滤波及边缘检测

实验四数字图像滤波及边缘检测
I = imread('rice.png'); imshow(I); BW1 = edge(I,'prewitt'); figure; imshow(BW1); BW2 = edge(I,'canny'); figure; imshow(BW2);
区域生长法分割图像
主要考虑像素及其空间邻域像素之间的关系,开始时 确定一个或多个像素点作为种子,然后按照某种相似 准则增长区域,逐步生成具有某种均匀性的空间区域, 将相邻(4邻域或8邻域)的具有相似性质的像素或区 域归并从而逐步增长区域,直到没有可以归并的点或 其他小区域为止。区域内像素的相似性度量可以是平 均灰度值、纹理或颜色等信息。
边缘检测
采用并行边界技术。 两个具有不同灰度值的相邻区域之间总存在边缘。边
缘是灰度值不连续的结果,这种不连续常可利用求导 的方法检测到。一般常用一阶和二阶导数来检测边缘。 微分算子 边缘检测可借助空域微分算子通过卷积完成。 梯度算子; 拉普拉斯算子; 综合正交算子。
边界闭合
利用各种算子得到的边缘像素常常是孤立或分小段连 续的。为组成区域的封闭边界将不同的区域分开,需 要将边缘像素连接起来。
分割算法 借助灰度图像中像素灰度值的两个性质:不连续性和 相似性。区域内部的像素一般具有灰度相似性,而在 区域之间的边界上一般具有灰度不连续性。 利用区域间灰度不连续性的基于边界的算法; 利用区域内灰度相似性的基于区域的算法。
根据分割过程中处理策略的不同
并行算法
所有判断和决定都可独立和同时地做出。
‘salt & pepper’ 椒盐噪声参数设置: D:在图像I中加入强度为D的“椒盐”黑白像素
点. (缺省为0.05)
J=imnoise(I,’ salt & pepper’,D) ‘speckle’ 乘法噪声参数设置:

图像边缘检测实验报告

图像边缘检测实验报告

图像边缘检测实验报告图像边缘检测实验报告引言:图像边缘检测是计算机视觉领域中一项重要的任务,它在许多应用中都起到关键作用。

边缘是图像中不同区域之间的分界线,它们包含了图像中物体的轮廓和形状信息。

因此,准确地检测和提取图像边缘对于目标识别、图像分割和特征提取等任务至关重要。

实验目的:本实验旨在通过实践探索和理解常用的图像边缘检测算法,并对其性能进行评估。

我们将使用不同的算法对一组测试图像进行边缘检测,并比较它们的结果,以了解它们的优缺点和适用场景。

实验方法:1. 数据准备:我们从公开的图像数据库中选择了一组具有不同特征和复杂度的测试图像。

这些图像包括自然风景、人物肖像和建筑物等多种场景,以覆盖不同的应用场景。

2. 算法选择:我们选择了三种常用的图像边缘检测算法进行实验:Sobel算子、Canny算子和Laplacian算子。

这三种算法在实践中被广泛应用,并且具有不同的特点和适用范围。

3. 实验步骤:a) Sobel算子:我们首先将测试图像转换为灰度图像,然后使用Sobel算子对其进行边缘检测。

Sobel算子是一种基于梯度的算法,它通过计算图像中每个像素点的梯度值来检测边缘。

b) Canny算子:接下来,我们使用Canny算子对同一组测试图像进行边缘检测。

Canny算子是一种基于多阶段处理的算法,它首先使用高斯滤波器对图像进行平滑处理,然后计算梯度和非最大抑制,最后进行边缘连接和阈值处理。

c) Laplacian算子:最后,我们使用Laplacian算子对测试图像进行边缘检测。

Laplacian算子是一种基于二阶导数的算法,它通过计算图像中每个像素点的二阶导数值来检测边缘。

实验结果:通过对实验图像的边缘检测,我们得到了以下结果:1. Sobel算子产生了较为明显的边缘线,但在一些复杂场景下容易产生噪声,并且边缘线有时会断裂。

2. Canny算子在平滑处理后能够准确地检测到图像中的边缘,并且能够消除噪声和断裂的边缘线。

opencv实现canny边缘检测实验报告

opencv实现canny边缘检测实验报告

//
//+Smooth[(i+1)*nWidth+(j+1)]-Smooth[(i+1)*nWidth+j])/2;
//
//Q[i*nWidth+j]=(double)(Smooth[i*nWidth+j]-Smooth[(i+1)*nWidth+j]
//
//+Smooth[i*nWidth+(j+1)]-Smooth[(i+1)*nWidth+(j+1)])/2;
图像边缘检测实验报告 一、实验任务
熟悉opencv,实现canny边缘检测算法,比较canny算子,Sobel算子,Prewitt算子。
二、实验原理
1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感, 因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即 采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函数对图像灰度矩阵的每一点进 行加权求和。
pdkernal_2[i+j*nWindowSize]/=dSum_2; } } //************************************************************************* //高斯滤波 for(int i=0;i<nHeight;i++) { for(int j=0;j<nWidth;j++) {
data3 =(256+img->imageData[j*img->widthStep + i*3 + 2])%256; //R分量

图像的边缘检测实验处理报告

图像的边缘检测实验处理报告

数字视频图像处理与通信实验实验项目:图像的边缘检测指导老师:***班级:姓名:学号:图像的边缘检测实验报告一;实验目的:1.掌握图像边缘检测的基本概念以及边缘检测的基本方法;2.通过matlab 实验的具体操作来具体掌握空间图像边缘检测的方法;3.通过matlab 实验来验证所学知识,达到学以致用;4.通过matlab 实验来理解roberts 、sobel 、canny 、log 几种算子的原理以及各个算法的优缺点,并加以比较。

二;实验原理:图像的边缘是图像最基本的特征之一。

所谓边缘(或边沿)是指周围像素灰度有阶跃性变化或“屋顶”变化的那些像素的集合。

边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间,因此它是图像分割依赖的重要特征。

图像边缘对图像识别和计算机分析十分有用,边缘能勾划出目标物体,使观察者一目了然;边缘蕴含了丰富的内在信息(如方向、阶跃性质、形状等)。

从本质上说,图像边缘是图像局部特性不连续性(灰度突变、颜色突变、纹理结构突变等)的反应,它标志着一个区域的终结和另一个区域的开始。

边缘检测技术是所有基于边界分割的图像分析方法的第一步,首先检测出图像局部特性的不连续性,再将它们连成边界,这些边界把图像分成不同的区域,检测出边缘的图像就可以进行特征提取和形状分析,但各算子有自己的优缺点和适用领域。

Roberts 算子Roberts 算子是一种利用局部差分算子寻找边缘的算子,由下式给出: g(x,y)={[y x f ,(-)1,1(++y x f ]2+[y x f ,(- )1,1(++y x f ]2}21 ,其中f(x,y)是具有整数像素坐标的输入图像,平方根运算使该处理类似于在人类视觉系统中发生的过程。

Roberts 算子边缘定位准,但是对噪声敏感。

适用于边缘明显而且噪声较少的图像分割,在应用中经常用Roberts 算子来提取道路。

Prewitt 边缘算子Prewitt 边缘算子的卷积和如图所示,图像中的每个像素都用这两个核做卷积,取最大值作为输出,也产生一幅边缘幅度图像。

边缘检测实验报告

边缘检测实验报告

边缘检测实验报告 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT图像边缘提取实验报告一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。

二、实验原理检测图像边缘信息,可以把图像看做曲面,边缘就是图像的变化最剧烈的位置。

这里所讲的边缘信息包含两个方面:一是边缘的具体位置,即像素的坐标;而是边缘的方向。

微分算子有两个重要性质:定域性(或局部性)、敏感性(或无界性)。

敏感性就是说,它对局部的函数值变化很敏感,但是因其对变化过于敏感又有了天然的缺陷——不能抵抗噪声。

局部性意思是指,每一点的导数只与函数在该点邻近的信息有关。

主要有两大类基于微分算子的边缘检测技术:一阶微分算子边缘检测与二阶微分算子边缘检测。

这些检测技术采用以下的基本步骤:(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.掌握图像边缘检测的方法。

2.掌握AiCam框架的部署和使用。

二、实验内容1、算法原理1.1基本描述边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。

图像属性中的显著变化通常反映了属性的重要事件和变化。

图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。

本实验中使用的是canny边缘检测算子,除此之外还有Sobel、Laplacian算子等。

2、功能设计2.1功能描述AiCam人工智能轻量化应用框架是一款面向于人工智能边缘应用的开发框架,采用统一模型调用、统一硬件接口、统一算法封装和统一应用模板的设计模式,实现了嵌入式边缘计算环境下进行快速的应用开发和项目实施。

AiCam为模型算法的调用提供RESTful调用接口,实时返回分析的视频结果和数据,同时通过物联网云平台的应用接口,实现与硬件的连接和互动,最终形成各色智联网产业应用。

AiCam框架如下图所示:四、实验步骤1.工程部署1.1硬件部署1)准备人工智能边缘应用平台,给边缘计算网关正确连接Wi-Fi天线、摄像头、电源。

2)按下电源开关上电启动边缘计算网关,将启动ubuntu操作系统。

3)系统启动后,连接局域网内的Wi-Fi网络,记录边缘计算网关的IP地址,1.21)运行MobaXterm工具,通过SSH登录到边缘计算网关(参考附录2)。

2)在SSH终端创建实验工作目录:3)通过SSH将本实验工程代码和aicam工程包上传到对应目录下。

4)在SSH终端输入以下命令解压缩实验工程。

2.工程运行1)在SSH终端输入命令运行实验工程:3.图像边缘检测1)点击应用左侧的菜单选择“图像边缘检测”,应用将会返回图像边缘的实时视频图像。

图像的边缘检测实验报告

图像的边缘检测实验报告

图像的边缘检测实验报告图像的边缘检测实验报告一、引言图像处理是计算机科学领域中的一个重要研究方向,而边缘检测作为图像处理的基础任务之一,具有广泛的应用价值。

边缘是图像中灰度或颜色变化较为剧烈的地方,通过检测图像中的边缘可以提取出物体的轮廓、形状等重要信息,从而为后续的图像分析和识别提供基础。

二、实验目的本次实验旨在探究不同的边缘检测算法在图像处理中的应用效果,并通过实验结果分析和比较各算法的优缺点,从而为图像处理领域的研究和应用提供参考。

三、实验方法1. 实验环境:使用Python编程语言,结合OpenCV图像处理库进行实验。

2. 实验数据:选择了包含多种物体和复杂背景的图像作为实验数据,以保证实验的可靠性和准确性。

3. 实验步骤:(1) 读取图像数据,并将其转化为灰度图像。

(2) 对图像进行预处理,如降噪、平滑等操作,以提高边缘检测的效果。

(3) 使用不同的边缘检测算法对图像进行处理,如Sobel算子、Canny算法等。

(4) 分析和比较不同算法的实验结果,评估其优缺点。

四、实验结果与分析1. Sobel算子:Sobel算子是一种基于梯度的边缘检测算法,通过对图像进行卷积操作,提取出图像中的边缘信息。

实验结果显示,Sobel算子能够较好地检测出图像中的边缘,但对于噪声较多的图像效果较差。

2. Canny算法:Canny算法是一种经典的边缘检测算法,通过多步骤的处理过程,包括高斯滤波、计算梯度、非极大值抑制和双阈值处理等,最终得到清晰准确的边缘信息。

实验结果显示,Canny算法能够有效地检测出图像中的边缘,并具有较好的抗噪性能。

3. 其他算法:除了Sobel算子和Canny算法外,还有许多其他的边缘检测算法,如拉普拉斯算子、Roberts算子等,它们各自具有不同的特点和适用范围。

在实验中,我们也对这些算法进行了尝试和比较,发现它们在不同的图像场景下有着各自的优势和局限性。

五、实验总结与展望通过本次实验,我们对图像的边缘检测算法进行了探究和比较。

图像边缘检测

图像边缘检测

数字图像处理实验报告姓名:冯玉平学号: 1203210014 指导老师:吕建平完成时间: 2013年6月实验四图像边缘检测一、实验任务⑴了解图像边缘提取的基本概念;⑵了解进行边缘提取的基本方法;⑶掌握用不同算子对图像进行边缘检测的方法.⑷在Matlab或VC++环境下,编写程序分别用Roberts,Sobel和拉普拉斯高斯算子对图像进行边缘检测,比较三种算子处理的不同之处。

二、实验条件微机一台、vc++6.0集成开发环境。

三、实验原理图像的边缘是图像的最基本特征,它指的是周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。

物体的边缘是由灰度的不连续性反映的。

阶跃性边缘是指它两边的像素的灰度值有着显著的不同,屋顶状边缘位于灰度值从增加到减少的变化转折点。

经典的边缘提取方法是考察图像的每个像素在某个领域内灰度的变换,利用边缘邻近一阶或二阶方向导数变换规律,用简单的方法检测边缘,这种方法称为边缘检测局部算子法。

常用的梯度算子如下表所示:算子名称H1 H2 特点Roberts 边缘定位准,对噪声敏感。

Prewitt 平均、微分对噪声有抑制作用。

Sobel加权平均边宽≥2象素。

Isotropic Sobel权值反比于邻点与中心点的距离,检测沿不同方向边缘时梯度幅度一致。

拉普拉斯高斯(loG )算法是一种二阶边缘检测方法。

它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing )来检测边缘点。

其原理为,灰度级变形成的边缘经过微风算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处的微分值为0,峰值两侧符号相反,而原先的极值点对英语二阶微分中的过零点,通过检测过零点即可将图像的边缘提取出来。

Laplacian 算子为:近似计算为:常用的LOG 算子是5*5的模板,如下所示:四、实验步骤⑴实现灰度图像读取、保存模块;⑵读入灰度图像并用Roberts算子检测边缘。

五、实验程序:b=imread('图片1.bmp');%读取图片c=imresize(b,[256 256]);%转换成要求大小e=rgb2gray(c); %转换成二维灰度图imshow(e); %显示原图像b1=edge(e,'sobel'); %使用sobel方法检测边缘b2=edge(e,'prewitt');%使用prewitt方法检测边缘b3=edge(e,'roberts');%使用roberts方法检测边缘b4=edge(e,'log'); %使用拉普拉斯方法检测边缘figure %显示检测边缘后的各个图像subplot(221),imshow(b1);subplot(222),imshow(b2);subplot(223),imshow(b3);subplot(224),imshow(b4)(程序补充说明:由于我的电脑保存下来的原图是三维的,所以要先转换成二维的)六、实验结果图原图sobel方法检测边缘图、prewitt方法检测边缘图、roberts方法检测边缘图、拉普拉斯方法检测边缘图七、实验心得:1、多动手,多查阅有关书2、编程过程中要细心,认真修改出错的地方3、数字图像处理是一门很趣的学科,我个人很喜欢。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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算子为什么不以其原始形式用于边缘检测?。

相关文档
最新文档