实验三 图像边缘检测
边缘检测实验报告
边缘检测实验报告边缘检测实验报告引言:边缘检测是图像处理中的一项重要任务,它能够有效地提取图像中物体的边界信息,为后续的图像分割、物体识别等任务提供基础。
本实验旨在探究不同的边缘检测算法在不同场景下的表现,并对其进行评估和比较。
一、实验背景边缘检测是图像处理领域的经典问题,早期的边缘检测算法主要基于梯度的计算,如Sobel、Prewitt等。
随着深度学习的发展,基于卷积神经网络的边缘检测方法也取得了显著的进展。
本实验将选择传统的Sobel算子和基于深度学习的Canny算法进行对比。
二、实验步骤1. 数据准备:选择一组包含不同场景、不同复杂度的图像作为实验数据集,确保数据集的多样性和代表性。
2. 算法实现:使用Python编程语言,利用OpenCV库实现Sobel算子和Canny 算法。
对于Sobel算子,我们将尝试不同的卷积核大小和阈值设置。
对于Canny算法,我们将调整高低阈值的取值范围。
3. 实验评估:使用评估指标来衡量不同算法的性能,如准确率、召回率、F1值等。
同时,我们还可以通过可视化的方式来比较不同算法的边缘检测效果。
三、实验结果在实验中,我们选择了10张不同类型的图像进行边缘检测,并使用Sobel算子和Canny算法进行处理。
通过对比实验结果,我们得出以下结论:1. Sobel算子:- 当卷积核大小较小(如3x3)时,Sobel算子能够较好地检测到图像中的细节边缘,但对于噪声较多的图像效果较差。
- 当卷积核大小较大(如7x7)时,Sobel算子能够更好地抑制噪声,但会导致边缘检测结果的模糊。
- 阈值的设置对Sobel算子的效果也有较大影响,较低的阈值可以提高边缘检测的敏感性,但也容易引入噪声。
2. Canny算法:- Canny算法基于梯度的计算和非极大值抑制,能够有效地检测到图像中的边缘,并且对噪声有较好的鲁棒性。
- 高低阈值的设置对Canny算法的效果影响较大,合适的阈值范围可以提高边缘检测的准确性和稳定性。
实验三图像边缘检测
实验四图像边缘检测一.实验目的1.熟悉matlab图像处理工具箱及图像边缘检测函数的使用;2.理解和掌握图像边缘检测(Sobel、Prewitt、Log边缘算子)的方法和应用;二、实验环境本实验在386以上的微机上进行,运行环境为Matlab 6.5。
三.实验内容与完成情况在matlab环境中,程序首先读取图像,然后调用图像边缘检测(Sobel、Prewitt、Log 边缘算子)函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');J1=edge(I,'sobel');J2=edge(I,'prewitt');J3=edge(I,'log');subplot(1,4,1),imshow(I);subplot(1,4,2),imshow(J1);subplot(1,4,3),imshow(J2);subplot(1,4,4),imshow(J3);观察经过图像边缘检测(Sobel、Prewitt、Log边缘算子)处理后的结果。
(a)原始图像 (b)Sobel边缘算子(c)Prewitt边缘算子 (d)Log边缘算子四、出现的问题及对问题的解决方案问题:不知道怎么调用各种算子。
解决:用函数edge(I,'sobel');即可实现。
五、思考题1、比较上述算子的优缺点。
sobel算子对灰度渐变和噪声较多的图像处理效果比较好,sobel算子对边缘定位比较准确。
Prewitt算子对灰度渐变和噪声较多的图像处理效果较好。
Log算子经常出现双边缘像素边界,而且该检测方法对噪声比较敏感,所以很少使用log算子检测边缘,而是用来判断边缘像素是位于图像的明区还是暗区。
六、实验总结通过本次实验,我学会了边缘检测的Matlab实现方法,掌握了Matlab 区域操作函数的使用和图像分析和理解的基本方法并对用'sobel','prewitt','log'算子对图像进行边缘检测的不同效果有了更直观的认识。
数字图像处理实验报告(图像边缘检测)
实验报告实验名称实验三图像边缘检测课程名称数字图像处理姓名成绩班级学号日期地点备注:1、实验目的(1)了解并掌握使用微分算子进行图像边缘检测的基本原理;(2)编写程序使用 Laplacian 算子(二阶导数算子)实现图像锐化,进一步理解图像锐化的实质;(3)掌握使用不同梯度算子(一阶导数算子)进行图像边缘检测的原理、方法,根据实验结果分析各种算子的工作效果;(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
2、实验环境(1)Windows XP/7(2)Matlab 7.1/7.143、实验方法本次实验要求对256×256大小,256级灰度的数字图像lena.img进行处理。
(1)对该图像进行锐化处理,要求采用Laplacian算子进行锐化,分α=1和α=2两种情况,按如下不同情况进行处理:①g1(m,n)=f(m,n)-α∇f②g2(m,n)=4αf(m,n)-α[f(m-1,n)+f(m+1,n)+f(m,n-1)+f(m,n+1)]I、要对图像进行处理,要先读取该图像,实验代码如下:close all;clear all;fid=fopen('lena.img','r');image=fread(fid,[256,256],'uint8');fclose(fid);II、读取图像后,对该图像的每一像素(不考虑图像的边界部分)进行遍历,根据公式①(公式①相当于做差分)对每一灰度进行计算,将所得的结果存入一矩阵g1中(矩阵g1初始化为该图像的矩阵),代码如下(仅以ɑ=1为例):g1=image;a=1;[x,y]=size(image);for i=2:(x-1)for j=2:(y-1)g1(i,j)=(1+4*a)*image(i,j)-a*(image(i+1,j)+image(i-1,j)+image(i,j+1)+image(i,j-1));endendIII、根据公式②对图像的每一个像素(不考虑图像的边界部分)进行计算,将所得之存入矩阵g2中(g2初始化值为该图像的矩阵值),具体方法与上一步类似,代码如下(仅以ɑ=1为例):g2=image;a=1;[x,y]=size(image);for i=2:(x-1)for j=2:(y-1)g2(i,j)=4*a*image(i,j)-a*(image(i+1,j)+image(i-1,j)+image(i,j+1)+image(i,j-1));endend(2)分别利用 Roberts、Prewitt 和 Sobel 边缘检测算子,对原图像进行边缘检测,显示处理前、后图像。
图像的边缘检测实验报告
图像的边缘检测实验报告
《图像的边缘检测实验报告》
图像的边缘检测是计算机视觉领域中的重要技术之一,它可以帮助我们识别图
像中物体的边缘和轮廓,从而实现图像分割、特征提取和目标识别等应用。
在
本次实验中,我们将对几种常用的边缘检测算法进行比较和分析,以评估它们
在不同场景下的性能和适用性。
首先,我们使用了Sobel算子进行边缘检测。
Sobel算子是一种基于梯度的边缘检测方法,它通过对图像进行卷积操作来寻找像素值变化最大的地方,从而找
到图像中的边缘。
实验结果显示,Sobel算子在一些简单场景下表现良好,但
在复杂背景和噪声干扰较大的情况下效果不佳。
接着,我们尝试了Canny边缘检测算法。
Canny算法是一种多阶段的边缘检测
方法,它通过对图像进行高斯滤波、计算梯度、非极大值抑制和双阈值处理等
步骤来检测图像中的边缘。
实验结果显示,Canny算法在复杂场景下表现出色,能够有效地抑制噪声并找到图像中的真实边缘。
最后,我们还尝试了Laplacian算子和Prewitt算子等其他边缘检测算法,并对
它们的性能进行了比较和分析。
实验结果显示,不同的边缘检测算法在不同场
景下表现出各自的优势和劣势,需要根据具体的应用需求来选择合适的算法。
总的来说,本次实验对图像的边缘检测算法进行了全面的比较和分析,为我们
进一步深入理解和应用这些算法提供了重要的参考和指导。
希望通过这些实验
结果,我们能够更好地利用边缘检测技术来解决实际的图像处理问题,为计算
机视觉领域的发展做出更大的贡献。
08实验三图像边缘检测.
实验三: 图像边缘检测
实验结果示例
实验三: 图像边缘检测
实验结果示例
实验三: 图像边缘检测
实验结果示例
实验三: 图像边缘检测
实验报告
按照格式要求认真如实的撰写实验报告。基本格式:
一、实验目的
二、实验仪器
三、实验内容
四、实验原理
五、实验步骤
六、实验结果及分析,这一部分主要包括:
1.经调试正确的程序源代码。要求有必要的说明和注释,如程序
实验原理
几何变换不改变图像的像素值,只改变像素所在的几何位置。
Roberts、Sobel、Laplacian、Canny、LOG算子
具体请参考教材及实验指导书。
验三: 图像边缘检测
实验方案
自行设计实验方案,主要包括: 1.实验内容的算法原理; 2.实现图像处理算法的程序流程图; 3.编写M-function函数,并对其(包括调用的平台内部函数)功能
实验仪器
联想图像处理工作站,ICETECK-DM642-IDK-M实验系统
实验三: 图像边缘检测
实验内容
1.编写M-function函数,分别实现用Roberts、Sobel、 Laplacian、LOG算子进行静态图像边缘检测的算法,对 测试图像进行检测,显示原图像,处理后图像,观察不同 算子的处理效果。 2.学习使用ICETECK-DM642-IDK-M实验系统进行,用 Sobel算子实现视频图像边缘检测,观察结果(参见附录D)
实验三 图像边缘检测
主讲人:李雯
实验三: 图像边缘检测
实验目的
1. 学习常用的图像边缘检测方法和用途,并通过实验使学生体会几种 典型的边缘检测算子对图像处理的效果; 2. 通过观察图像边缘检测的结果,加深对相关理论知识的理解; 3. 掌握常用图像边缘检测的算法设计以及编程实现; 4. 学习使用ICETECK-DM642-IDK-M实验系统进行视频图像边缘检 测的程序设计方法。
数字图像实验报告三图像的边缘检测
实验三图像的边缘检测一、实验目的1.理解图像边缘检测的概念;2.掌握图像边缘检测的目的及意义;3.学会利用matlab编程实现图像的边缘检测。
二、实验内容1. 利用matlab语言直接编程实现sobel算子检测图像边缘;2. 利用matlab语言直接编程实现prewitt算子检测图像边缘3. 利用matlab语言直接编程实现laplace算子检测图像边缘。
三、实验步骤(一)利用matlab语言直接编程实现sobel算子检测图像边缘实验代码如下:u=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告三通信五班韩奇20110803520\fangzi.jpg');u=rgb2gray(u);imwrite(u,'fangzi灰度图.bmp');f=u;F=double(f);U=double(u);[H,W]=size(u);uSobel=u;for i=2:H-1for j=2:W-1Gx=(U(i+1,j-1)+ U(i+1,j)+F(i+1,j+1))-(U(i-1,j-1)+U(i-1,j)+F(i-1,j+1));Gy=(U(i-1,j+1)+U(i,j+1)+F(i+1,j+1))-(U(i-1,j-1)+U(i,j-1)+F(i+1,j-1));uSobel(i,j)=sqrt(Gx^2+Gy^2);endendfigure(1);imshow(f);title('原图');figure(2);imshow(im2uint8(uSobel)); title('Sobel边缘检测');生成图像如下:从图中可以看出,利用sobel算子能够提取出原图的边缘,且效果较好。
sobel算子能检测边缘点,且能进一步抑制噪声的影响,但检测的边缘较宽。
(二)利用matlab语言直接编程实现laplace算子检测图像边缘实验代码如下:[I,map]=imread('E:\实验报告\数字图像处理实验报告\数字图像实验报告三通信五班韩奇20110803520\fangzi.jpg');I=rgb2gray(I);[H,W]=size(I);M=double(I);J=M;for i=2:H-1for j=2:W-1J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+M(i,j+1)-M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M(i+1,j-1)-M(i-1 ,j-1)+M(i+1,j)-M(i-1,j)+M(i+1,j+1)-M(i-1,j+1));end;end;figure(1);imshow(I);title('原图');figure(2);imshow(uint8(J));title('Prewitt处理后'); 生成图像如下:prewitt算子为在检测边缘的同时减少噪声的影响,从加大边缘检测算子的模板大小出发,由2*2扩大到3*3来计算差分算子,采用prewitt算子能检测到边缘点,还可以抑制噪声。
图像边缘检测实验报告
图像边缘检测实验报告图像边缘检测实验报告引言:图像边缘检测是计算机视觉领域中一项重要的任务,它在许多应用中都起到关键作用。
边缘是图像中不同区域之间的分界线,它们包含了图像中物体的轮廓和形状信息。
因此,准确地检测和提取图像边缘对于目标识别、图像分割和特征提取等任务至关重要。
实验目的:本实验旨在通过实践探索和理解常用的图像边缘检测算法,并对其性能进行评估。
我们将使用不同的算法对一组测试图像进行边缘检测,并比较它们的结果,以了解它们的优缺点和适用场景。
实验方法:1. 数据准备:我们从公开的图像数据库中选择了一组具有不同特征和复杂度的测试图像。
这些图像包括自然风景、人物肖像和建筑物等多种场景,以覆盖不同的应用场景。
2. 算法选择:我们选择了三种常用的图像边缘检测算法进行实验:Sobel算子、Canny算子和Laplacian算子。
这三种算法在实践中被广泛应用,并且具有不同的特点和适用范围。
3. 实验步骤:a) Sobel算子:我们首先将测试图像转换为灰度图像,然后使用Sobel算子对其进行边缘检测。
Sobel算子是一种基于梯度的算法,它通过计算图像中每个像素点的梯度值来检测边缘。
b) Canny算子:接下来,我们使用Canny算子对同一组测试图像进行边缘检测。
Canny算子是一种基于多阶段处理的算法,它首先使用高斯滤波器对图像进行平滑处理,然后计算梯度和非最大抑制,最后进行边缘连接和阈值处理。
c) Laplacian算子:最后,我们使用Laplacian算子对测试图像进行边缘检测。
Laplacian算子是一种基于二阶导数的算法,它通过计算图像中每个像素点的二阶导数值来检测边缘。
实验结果:通过对实验图像的边缘检测,我们得到了以下结果:1. Sobel算子产生了较为明显的边缘线,但在一些复杂场景下容易产生噪声,并且边缘线有时会断裂。
2. Canny算子在平滑处理后能够准确地检测到图像中的边缘,并且能够消除噪声和断裂的边缘线。
实验三图像分割与边缘检测
数字图像处理实验报告学生姓名王真颖学生学号L01指导教师梁毅雄专业班级计算机科学与技术1501完成日期2017年11月06日计算机科学与技术系信息科学与工程学院目录实验一...................................................... 错误!未定义书签。
一、实验目的............................................... 错误!未定义书签。
二、实验基本原理........................................... 错误!未定义书签。
三、实验内容与要求......................................... 错误!未定义书签。
四、实验结果与分析......................................... 错误!未定义书签。
实验总结.................................................... 错误!未定义书签。
参考资料. (3)实验一图像分割与边缘检测一.实验目的1. 理解图像分割的基本概念;2. 理解图像边缘提取的基本概念;3. 掌握进行边缘提取的基本方法;4. 掌握用阈值法进行图像分割的基本方法。
二.实验基本原理●图象边缘检测图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。
边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。
边缘检测实际上就是检测图像特征发生变化的位置。
边缘检测实验报告
边缘检测实验报告 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 大于阈值则相应的点 位于便于边缘处。
医学图像处理实验报告——边缘检测
医学图像处理实验报告班级 专业 姓名 学号实验八 用Vc++实现医学图像的边缘检测一、实验目的(1)了解VC++在医学图像处理中的应用。
(2)熟悉用VC++进行医学图像边缘检测的编程方法。
二、实验设备 微机。
三、实验内容(1)应用VC++进行医学图像的边缘检测。
四、实验步骤1、开启VC++6.0,在菜单中选中File 单击鼠标左键,在下拉菜单中选中Open Workspce 单击鼠标左键,在打开的对话框中,根据路径:D:\WorkSpace\MedicalImageProcessingDLL\ MedicalImageProcessingDLL.dsw 打开工作空间。
2、在打开的VC 工作空间中首先找到类XH_MedicalImageProcessing,然后,在类中找到函数KirschEdgDetectBuf 。
3、在函数体内根据图所示的Kirsch 滤波模板和边缘检测的数学表达式(1),进行医学图像边缘检测的VC 编程。
()()()()()()(){}1111128,,,,max ,,,,,,m m i j f x y g x i y j M i j FI x y f x y f x y f x y =-=-=++=∑∑L (1)4、编程完毕,调试和运行程序,运行无误后,改变边缘检测的阈值并拷贝所得图像。
5、整理所得图像,对实验结果进行分析。
53-553-3-3-3-053-553-3-3-3-053-553-3-3-3-053-553-3-3-3-053-553-3-3-3-053-553-3-3-3-053-553-3-3-3-053-553-3-3-3-图1 Kirsch 边缘检测算子的滤波模板五、实验结果和分析EdgImgT85 EdgImgT254 EdgImgT502 EdgImgT615六、思考题1、Kirsch 边缘检测算子有什么优点?。
实验三图像分析实验——图像分割、形态学及边缘与轮廓分析
实验三图像分析实验——图像分割、形态学及边缘与轮廓分析一、实验条件PC机数字图像处理实验教学软件大量样图二、实验目的1、熟悉图像形态学分析的基本原理,观察不同形态学方法处理的结果;2、熟悉图像阈值分割、区域生长、投影及差影检测和模板匹配的基本原理,观察处理的结果;3、熟悉图像边缘检测、Hough平行线检测、轮廓提取及跟踪和种子填充的基本原理,观察处理的结果;4、了解图像矩、空穴检测、骨架提取的基本原理,观察处理的结果。
三、实验原理本次实验侧重于演示观察,由于内容繁多,并且系统中已有部分实验项目的原理说明,因此实验原理及编程实现步骤这里不再详细叙述,有兴趣的同学可以查阅数字图像处理方面的有关书籍。
四、实验内容1、图像形态学分析内容包括:图像膨胀、图像腐蚀、开运算、闭运算和图像细化针对二值图像进行处理,有文字说明,实验步骤中将详细介绍其使用方法。
2、图像分割内容包括:阈值分割、区域生长、投影检测、差影检测和模板匹配阈值分割:支持灰度图像。
从图库中选择图像分割中的源图, 然后执行图像分析→图像分割→阈值分割, 比较原图和分割后的图, 对照直方图分析阈值分割的特点。
对源图再执行一次图像变换→点运算→阈值变换, 比较分析阈值变换和阈值分割的结果。
区域生长:支持灰度图像。
操作方法与阈值分割类似,比较分析其与阈值分割的不同。
投影检测:只支持二值图像。
从图库中选择投影检测中的源图, 然后执行图像分析→投影检测→水平投影, 然后再垂直投影, 记录下检测部分的水平和垂直方向的位置。
如有必要, 在检测之前, 对图像进行平滑消噪。
差影检测:支持灰度图像。
从图库中选择图像合成中的源图, 然后执行图像分析→图像合成→图像相减, 在弹出的文件对话框中选择图库图像合成中的模板图像,观察分析差影结果。
模板匹配:支持灰度图像。
从图库中选择模板匹配中的源图, 然后执行图像分析→模式识别→模板匹配, 在弹出的文件对话框中选择图库模板匹配中的模板图像, 观察分析结果。
实验三 图像分割与边缘检测
实验三图像分割与边缘检测上课老师:赵欢喜实验指导:吴磊实验地点:科技楼4楼计算机实验中心时间:2010.12.14一.实验目的1.理解图像分割的基本概念;2.理解图像边缘提取的基本概念;3.掌握进行边缘提取的基本方法;4.掌握用阈值法进行图像分割的基本方法。
二.实验基本原理●图象边缘检测图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。
边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。
边缘检测实际上就是检测图像特征发生变化的位置。
图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。
边缘检测的方法大多数是基于方向导数掩模求卷积的方法。
导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。
一阶导数与是最简单的导数算子,它们分别求出了灰度在x 和y 方向上的变化率,而方向α上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导。
一幅数字图像的一阶导数是基于各种二维梯度的近似值。
图像f(x,y)在位置(x,y)的梯度定义为下列向量: ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡∂∂∂∂=y f x f y x f G )],([(3-4)在边缘检测中,一般用这个向量的大小,用f∇表示2]22/1=f+∇(3-5)[GyGx函数f在某点的方向导数取得最大值的方向是,方向导数的最大值是称为梯度模。
最新实验三_图像边缘检测new
实验三_图像边缘检测n e w广西工学院信计系上机实验报告课程:数字图像处理第 1 页 / 共 4 页专业班级:电科082 实验日期: 2011 年 6 月 10日姓名:梁芳梅学号:200800902044实验三图像的边缘检测一、实验目的1、了解边缘检测的基本原理及方法;2、掌握用MATLAB语言进行图象的边缘检测的方法。
二、实验要求1、分别编写用soble、prewitt、LOG(高斯拉普拉斯算子)进行边缘检测的程序,对lena.bmp进行边缘检测,观察边缘检测的结果,给出你的分析;2、选择其他不同类型(边缘较多与较少)的图像,再进行边缘检测,分析结果三. 程序源代码:1、(1)>> %边缘检测log.mf=imread('cameraman.tif'); %读入灰度图像;[width,height]=size(f); %计算灰度图像的尺寸;f=double(f); %将整形转变为双精度形;%h=[-2 -4 -4 -4 -2;% -4 0 8 0 -4;% -4 8 24 8 -4;% -4 0 8 0 -4;% -2 -4 -4 -4 -2]; %h=[ 0 0 -1 0 0;0 -1 -2 -1 0;-1 -2 16 -2 -1;0 -1 -2 -1 0;0 0 -1 0 0]; %g=zeros(width,height); %建立一个width*height的全零矩阵;for i=3:1:width-2 %变量i从1到width-4开始循环;for j=3:1:height-2 %变量j从1到height-4开始循环;sum=0;for m=1:1:5for n=1:1:5sum=sum+f(i+m-3,j+n-3)*h(m,n);endendg(i,j)=sum;end %变量j循环结束;end %变量i循环结束;for i=1:1:height %变量i从1到height开始循环;g(1,i)=0; %g(2,i)=0; %g(width,i)=0; %g(width-1,i)=0; %end %变量i循环结束;for i=1:1:width %变量i从1到height开始循环;g(i,1)=0; %g(i,2)=0; %g(i,height)=0; %g(i,height-1)=0; %end %变量i循环结束;subplot(1,2,1),imshow(uint8(f)); %将当前窗口分成1*2的区域,原图像显示在第一区;title('原图像');subplot(1,2,2),imshow(uint8(g),[]); %将当前窗口分成1*2的区域,滤波后的图像显示在第二区;title('边缘检测结果');>>(2)>>%边缘检测prewitt.mf=imread('cameraman.tif'); %读入灰度图像;[width,height]=size(f); %计算灰度图像的尺寸;f=double(f); %将整形转变为双精度形;%prewitt%h1=[-1 0 1;-1 0 1; -1 0 1]; %%h2=[-1 -1 -1;0 0 0; 1 1 1]; %%sobel%h1=[-1 0 1;-2 0 2; -1 0 1]; %%h2=[-1 -2 -1;0 0 0; 1 2 1]; %%Isotropic sobelh1=[-1 0 1;-1.414 0 1.414; -1 0 1]; %h2=[-1 -1.414 -1;0 0 0; 1 1.414 1]; %g=zeros(width,height); %建立一个width*height的全零矩阵;for i=2:1:width-1 %变量i从1到width-4开始循环;for j=2:1:height-1 %变量j从1到height-4开始循环;sum1=f(i-1,j-1)*h1(1,1)+f(i-1,j)*h1(1,2)+f(i-1,j+1)*h1(1,3);sum1=sum1+f(i,j-1)*h1(2,1)+f(i,j)*h1(2,2)+f(i,j+1)*h1(2,3);sum1=sum1+f(i+1,j-1)*h1(3,1)+f(i+1,j)*h1(3,2)+f(i+1,j+1)*h1(3,3);sum2=f(i-1,j-1)*h2(1,1)+f(i-1,j)*h2(1,2)+f(i-1,j+1)*h2(1,3);sum2=sum2+f(i,j-1)*h2(2,1)+f(i,j)*h2(2,2)+f(i,j+1)*h2(2,3);sum2=sum2+f(i+1,j-1)*h2(3,1)+f(i+1,j)*h2(3,2)+f(i+1,j+1)*h2(3,3); g(i,j)=abs(sum1)+abs(sum2);%阈值%if (g(i,j)>60)% g(i,j)=g(i,j);%else% g(i,j)=0;%endend %变量j循环结束;end %变量i循环结束;for i=1:1:height %变量i从1到height开始循环;g(1,i)=0; %g(width,i)=0; %end %变量i循环结束;for i=1:1:width %变量i从1到height开始循环;g(i,1)=0; %g(i,height)=0; %end %变量i循环结束;subplot(1,2,1),imshow(uint8(f)); %将当前窗口分成1*2的区域,原图像显示在第一区;title('原图像');subplot(1,2,2),imshow(uint8(g)); %将当前窗口分成1*2的区域,滤波后的图像显示在第二区;title('边缘检测结果');>>2、(1)(2)程序与上面的一样,只需换图片即可四.实验结果分析与实验总结:实验结果图:1、(1)边缘log(2)边缘prewitt2、(1)边缘log(2)边缘prewitt结果分析:Prewitt算子检测出的边缘比较粗且定位精度低,Log算子则能提取对比度较弱的边缘,边缘定位较高。
图像的边缘检测实验报告
图像的边缘检测实验报告图像的边缘检测实验报告一、引言图像处理是计算机科学领域中的一个重要研究方向,而边缘检测作为图像处理的基础任务之一,具有广泛的应用价值。
边缘是图像中灰度或颜色变化较为剧烈的地方,通过检测图像中的边缘可以提取出物体的轮廓、形状等重要信息,从而为后续的图像分析和识别提供基础。
二、实验目的本次实验旨在探究不同的边缘检测算法在图像处理中的应用效果,并通过实验结果分析和比较各算法的优缺点,从而为图像处理领域的研究和应用提供参考。
三、实验方法1. 实验环境:使用Python编程语言,结合OpenCV图像处理库进行实验。
2. 实验数据:选择了包含多种物体和复杂背景的图像作为实验数据,以保证实验的可靠性和准确性。
3. 实验步骤:(1) 读取图像数据,并将其转化为灰度图像。
(2) 对图像进行预处理,如降噪、平滑等操作,以提高边缘检测的效果。
(3) 使用不同的边缘检测算法对图像进行处理,如Sobel算子、Canny算法等。
(4) 分析和比较不同算法的实验结果,评估其优缺点。
四、实验结果与分析1. Sobel算子:Sobel算子是一种基于梯度的边缘检测算法,通过对图像进行卷积操作,提取出图像中的边缘信息。
实验结果显示,Sobel算子能够较好地检测出图像中的边缘,但对于噪声较多的图像效果较差。
2. Canny算法:Canny算法是一种经典的边缘检测算法,通过多步骤的处理过程,包括高斯滤波、计算梯度、非极大值抑制和双阈值处理等,最终得到清晰准确的边缘信息。
实验结果显示,Canny算法能够有效地检测出图像中的边缘,并具有较好的抗噪性能。
3. 其他算法:除了Sobel算子和Canny算法外,还有许多其他的边缘检测算法,如拉普拉斯算子、Roberts算子等,它们各自具有不同的特点和适用范围。
在实验中,我们也对这些算法进行了尝试和比较,发现它们在不同的图像场景下有着各自的优势和局限性。
五、实验总结与展望通过本次实验,我们对图像的边缘检测算法进行了探究和比较。
图像的边缘检测实验处理报告
数字视频图像处理与通信实验实验项目:图像的边缘检测指导老师:***班级:姓名:学号:图像的边缘检测实验报告一;实验目的: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 边缘算子的卷积和如图所示,图像中的每个像素都用这两个核做卷积,取最大值作为输出,也产生一幅边缘幅度图像。
图像处理实验报告实验目的:图像边缘检测和提取:分别用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.学习利用Matlab图像工具箱对图像进行边沿检测。
二、实验原理边缘检测在图像处理中可分为空域下的操作和频域下的操作。
本实验以空域下的操作为主要实验内容,其他方法同学们可以在课后自行实验。
空域下的图像边缘检测主要应用的是领域运算。
三、实验要求对边缘检测的要求:使用Matlab图像处理工具箱中的不同方法对下图的边缘进行提取;注意观察不同操作对垂直方向、水平方向、斜方向的提取效果有何区别;注意观察提取后的边界是否连续,若不连续可采用什么方法使其连续。
四、实验步骤1.打开计算机,启动MATLAB程序;2.调入实验指导书所示的数字图像,利用MATLAB图像工具箱中已有函数进行编程以实现图像的边缘检测;3.显示原图和处理过的图像。
4.记录和整理实验报告五、实验仪器1.计算机;2.MATLAB程序;3.记录用的笔、纸。
六、实验报告要求1.对所使用的图像边沿检测方法的原理进行说明。
2.给出程序清单和注释。
3.对不同处理方法进行说明、比较。
********************自己的方法*********************** QQ = imread('Image1.bmp'>。
blood=rgb2gray(QQ>。
[x,y]=size(blood>。
% 求出图象大小b=double(blood>。
N =sqrt(100> * randn(x,y>。
% 生成方差为10的白噪声I=b+N。
% 噪声干扰图象for i=1:x % 实际图象的灰度为0~255for j=1:yif (I(i,j>>255>I(i,j>=255。
endif (I(i,j><0>I(i,j>=0。
endendendz0=max(max(I>>。
边缘检测实验报告
图像边缘提取实验报告一、实验目的通过课堂的学习,已经对图像分割的相关理论知识已经有了全面的了解,知道了许多图像分割的算法及算子,了解到不同的算子算法有着不同的优缺点,为了更好更直观地对图像分割进行深入理解,达到理论联系实际的目的,特制定如下的实验。
二、实验原理检测图像边缘信息,可以把图像看做曲面,边缘就是图像的变化最剧烈的位置。
这里所讲的边缘信息包含两个方面:一是边缘的具体位置,即像素的坐标;而是边缘的方向。
微分算子有两个重要性质:定域性(或局部性)、敏感性(或无界性)。
敏感性就是说,它对局部的函数值变化很敏感,但是因其对变化过于敏感又有了天然的缺陷——不能抵抗噪声。
局部性意思是指,每一点的导数只与函数在该点邻近的信息有关。
主要有两大类基于微分算子的边缘检测技术:一阶微分算子边缘检测与二阶微分算子边缘检测。
这些检测技术采用以下的基本步骤:(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实验目的1)拿握mallab的基本操作。
2)图像的边缘进行提取,通过对边缘的分析来分析图像的特征。
3)学习图像边缘检测的原理,观察算法处理结果。
2实验设备1)PC计算机2)matlab 软件3)实验所需要的图片3实验步骤(1)使用imrcad函数读取一幅RGB图像,并输出显示该图像;(2)由于MATLAB对彩色图像不能进行分析,所以,要将图像首先迸行灰度处理;(3)对灰度处理后的图像依次迸行Sobel算于,Pwwiti算于‘Roberts算于,Laplace算于和Canny算于运算;(4)根据对图像观察分析,得岀结论。
4 mallab 程序I=imrcad(*E:\l O.jpg *);imshowfO^tlcfl 原图像*);J=rgb2gray(l);subplot(3,3>2);imshowg);tiiicf2 灰度图');K=imadjust(J,[40/255 1]);subplot(3,33)imshow(lQ;titlcC3调整灰度后的图');ll=cdgc(K;sobcl,);subplot(3,3>4);imshow(Il);ritlcf4 Sobel 算于);12 二cdgc(K7prcwitf);subplot(3,3>5);imsh()w(I2);titk:C5 Prcwitl 算于^);13=cdgc(K;robcrt f);subpk)t(3,3>6);imshow(I3);titlcf6 Robert 算于');I4Fdgc(K,b*);subph)l(3,3,7);imshow(I4);titlcf7 Laplace 算于);I5=cdgc(K/cannv r);imshow(15);titlef8 Caimy 算亍);5实验结果与分析1原图像 2灰度图 3调整灰度后的图通过观察分析图像,可知,Pruwit I 算于和Sobel 算于都是对图像进行差分和 滤波运算,仅在平滑部分的权值选择上有些差异,但是图像产生了一定的模糊,而 且有些边缘还检测不出来,所以检测精度比较低,该类算于比较适用于图像边缘 灰度值比较明显的情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三图像边缘检测
一、实验目的
(1)了解并掌握使用微分算子进行图像边缘检测的基本原理;
(2)编写程序使用Laplacian 算子(二阶导数算子)实现图像锐化,进一步理解图像锐化的实质;
(3)掌握使用不同梯度算子(一阶导数算子)进行图像边缘检测的原理、方法,根据实验结果分析各种算子的工作效果;
(4)总结实验过程(实验报告,左侧装订):方案、编程、调试、结果、分析、结论。
二、实验环境
操作系统:Windws2000/XP 所用软件: MATLAB 6、Visual C++、Visual Basic 或其它
三、实验内容及步骤
对256×256大小、256级灰度的数字图像lena.img (如图5.1所示)进行如下处理:
(1)对原图像进行锐化处理,显示处理前、后图像:
用Laplacian 算子进行锐化,分1=α和2=α两种情况,各按如下不同情况给出处理结果,并回答提出的问题:
① f n m f n m g 21),(),(∇-=α ② )]1,()1,(),1(),1([),(4),(2++-+++--=n m f n m f n m f n m f n m f n m g αα 问题:(1)),(n m f 和),(1n m g 、),(2n m g 之间有何关系?),(2n m g 代表图像中的哪些
信息?由此得出图像锐化的实质是什么?
(2)分别利用Roberts 、Prewitt 和Sobel 边缘检测算子,对原图像进行边缘检测,显示处理前、后图像。
四、实验结果与分析
图1 实验图象
lena.img
程序代码:
clc;
fid=fopen('F:\数字图像\图像\img\lena.img','r');
f=fread(fid,[256,256],'uchar');
subplot(2,2,1);
imshow(f,[0,255]);
g1=f;g2=f;
a=1;
for x=2:255
for y=2:255
g1(x,y)=f(x,y)-(f((x-1),y)+f((x+1),y)+f(x,(y-1))+f(x,(y+1))-f(x,y).*4).*a;
g2(x,y)=f(x,y).*4*a-(f((x-1),y)+f((x+1),y)+f(x,(y-1))+f(x,(y+1))).*a;
end
end
subplot(2,2,2);
imshow(g1,[0,255]);
subplot(2,2,3);
imshow(g2,[0,255]);
运行结果
a=1时原图、g1和g2的图像
a=2时原图、g1和g2的图像
利用Roberts、Prewitt和Sobel算子对lena.img进行边缘检测程序代码:
clc;
fid=fopen('F:\数字图像\图像\img\lena.img','r');
f=fread(fid,[256,256],'uchar');
GR=f;
GP=f;
GS=f;
for x=2:255
for y=2:255
GRx(x,y)=f(x,y)-f(x+1,y+1);
GRy(x,y)=f(x,y+1)-f(x+1,y);
GR(x,y)=sqrt((GRx(x,y)).^2+(GRy(x,y)).^2);
GPx(x,y)=(f(x-1,y+1)+f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+f(x,y-1)+f(x+1,y-1))/3;
GPy(x,y)=(f(x-1,y-1)+f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+f(x+1,y)+f(x+1,y+1))/3;
GP(x,y)=sqrt((GPx(x,y)).^2+(GPy(x,y)).^2);
GSx(x,y)=(f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+2*f(x,y-1)+f(x+1,y-1))/3;
GSy(x,y)=(f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+2*f(x+1,y)+f(x+1,y+1))/3;
GS(x,y)=sqrt((GSx(x,y)).^2+(GSy(x,y)).^2);
end
end
subplot(2,2,1);
imshow(f,[0,255]);title('Ô-ͼÏñ');
subplot(2,2,2);
imshow(GR,[0,255]);title('Roberts');
subplot(2,2,3);
imshow(GP,[0,255]);title('Prewitt');
subplot(2,2,4);
imshow(GS,[0,255]);title('Sobel');
运行结果:
a=2时原图、g1和g2的图像
分析:
),(1n m g 和),(2n m g 是),(n m f 的两个分量;),(2n m g 代表图像中的低频信息;因此得出图像锐化的实质是对原图像进行变换,保留高频成分。
五、实验结论
1、通过本实验了解了并掌握了使用微分算子进行图像边缘检测的基本原理;
2、学会使用Laplacian算子(二阶导数算子)实现图像锐化的程序编写。
3、掌握了使用不同梯度算子(一阶导数算子)进行图像边缘检测的原理、
方法。