当前位置:文档之家› 最新Canny边缘检测与轮廓提取汇总

最新Canny边缘检测与轮廓提取汇总

C a n n y边缘检测与轮廓提取摘要................................................................................................................................................... Abstract (I)1 绪论 02 设计内容与OpenCV简介 (1)2.1 设计任务内容 (1)2.2 OpenCV简介 (1)3 理论分析 (2)3.1 边缘检测 (2)3.1.1 图像的边缘 (2)3.1.2 边缘检测的基本步骤 (2)3.2 轮廓提取 (3)4 边缘检测的算法比较 (4)4.1 Reborts算子 (4)4.2 Sobel算子 (5)4.3 Prewitt 算子 (5)4.4 Kirsch 算子 (7)4.5 LOG算子 (7)4.6 Canny算子 (8)5 实验仿真 (10)5.1算法设计 (10)5.2 实验结果 (11)6 分析与总结 (12)参考文献 (13)附录 (14)边缘检测是图像处理和计算机视觉中的基本问题,它的目的是标识出数字图像中亮度变化明显的点。

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

事实上,边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置。

这些轮廓常常是我们在图像边缘检测时,所需要的非常重要的一些特征条件,这就需要我们对一幅图像检测并提取出它的边缘。

可用于图像边缘检测和轮廓提取的方法有很多,其中包括有常见的Robert边缘算子、Prewitt 边缘算子、Sobel边缘算子等等。

本文首先将会从数字图像处理的角度,对几种边缘检测算法进行详细的分析,然后会并选择其中一种边缘检测算法进行实验。

考虑到以后进一步的学习,本文将会使用openCV对算法进行实现。

最后,本文将会把实验获得的实际效果,与理论分析的结果进行比对,并以此对本次实验进行总结。

关键字:边缘检测轮廓提取图像处理openCVAbstractEdge detection is the basic problem in image processing and computer vision, its purpose is to identify the digital image brightness changes in the obvious points.Image after edge detection processing, not only greatly reduces the amount of data, and eliminated can think irrelevant information, keep the structure of the image important attribute.Edge of image, in fact, exist in the image of the irregular structure and unstable phenomenon, which exists in the abrupt change point of the signal, the point the location of the image contour is presented.These contours are often in image edge detection, we need some important characteristics of the condition, this needs us to the edge of an image detection and extract it.There are so many method can be used in image edge detection and contour extraction, including common Robert edge operator, Prewitt edge operator, Sobel edge operator and soon.At first, this paper will, from the perspective of digital image processing and analysis of several kinds of edge detection algorithms in detail, and then select one of the edge detection algorithm for experiments.After considering the further study, this paper implemented the algorithm will use openCV.Finally, this article will obtain the actual effect of the experiment, and compares the results of theoretical analysis, and then to summarize this experiment. Keywords: Edge detection Contour extraction Image processing openCV1 绪论数字图像处理技术的迅猛发展,其应用前景得到了不可限量的扩展,如今各行各业都在积极发展与图像相关的技术。

其应用逐渐凸显其魅力,其应用如医学影像、航天航空、无人驾驶、自动导航、工业控制、导弹制导、文化艺术等。

边缘检测在图像处理和计算机视觉等领域骑着重要的作用,是图像分析、模式识别、目标检测与分割等的前期处理。

前期边缘检测的好坏,直接影响后期更高级处理的精度。

自从1986年John Canny提出了最优边缘检测算子的三条准则并推导出了一个近似实现。

但是在实际中,真正实现这一目标尚有较大的难度。

这是因为:(1)实际图像一般都含有噪声,并且噪声的分布信息业是未知的,同时噪声和边缘都属于高频信息,在进行滤波的同时,虽然能够在一定程度上抑制噪声,却也丢失了边缘信息。

(2)由于场景、光照条件的边缘等原因,同一场景在不同光照条件下得到的边缘可能也是不同的,设置的阈值也可能是不同的。

针对这些问题,如何进行改进,并得到较理想的边缘检测算子是有必要的。

另一方面,轮廓提取技术是图像分割、目标区域识别区域行状提取等图像分析处理领域十分重要的基础。

寻求非接触、精度高、具有综合分析能力的识别方法来代替人工目测,解决图像表面的模式识别和测量问题,是图像加工行业面临的一大难题,也是值得我们长期探讨的科研课题。

2 设计内容与OpenCV简介2.1 设计任务内容针对一幅图像,利用边缘检测算子(如Robert算子、Sobel算子、Prewitt算子、Laplace算子、Kirsch算子和Marr算子)检测出图像的边缘,然后采取轮廓提取算法得到封闭的二值图像轮廓。

2.2 OpenCV简介OpenCV的全称是:Open Source Computer Vision Library,是一个基于开源发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。

它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

相对于matlab而言,OpenCV操作起来较为复杂,需要一定C++编程基础,对没有语言基础的初学者而言较为困难。

但是OpenCV有很多不容忽视的优点:(1)具有更强大的数字图像处理能力;(2)具有良好的可移植性;(3)由于是一个C++的类库,因此在实际中运用更加广泛。

考虑到上述因素,此次试验将选择OpenCV作为开发工具。

3 理论分析3.1 边缘检测3.1.1 图像的边缘在数字图像中,边缘是指图像局部变化最显著的部分,边缘主要存在于目标与目标,目标与背景之间,是图像局部特性的不连续性,如灰度的突变、纹理结构的图标、颜色的图标等。

尽管图像的边缘点产生的原因各不相同,但他们都是图形上灰度不连续或灰度几句辩护的点,图像边缘分为阶跃状、斜坡状和屋顶状。

从成因上看,一般图像边缘主要由四个方面的因素形成:(1)图像灰度在表面法向变化的不连续造成的边缘;(2)图像对像素在空间上不一致形成的边缘;(3)在光滑的表面上由于颜色的不一致形成的边缘;(4)物体的光影造成的边缘。

图像边缘提取的作用有:(1)改良图像质量;(2)分离对象;(3)理解和重构视觉场景;(4)识别特征。

3.1.2 边缘检测的基本步骤(1)滤波:边缘检测主要基于导数计算,会受到噪声的影响,可以通过设计滤波器来降低噪声,但滤波器在降低噪声的同时也会导致边缘精度的损失。

(2)增强:增强算法将邻域中灰度有显著变化的点突出显示。

一般通过计算梯度幅值来完成。

(3)检测:在有些图像中梯度幅值较大的并不是边缘点。

最简单的边缘检测是梯度幅值阈值判定。

(4)定位:精确确定边缘的位置。

3.2 轮廓提取图像的轮廓作为图像的一种基本特征,经常被应用到较高层次的图像应用中去。

它在图像识别,图像分割,图像增强以及图像压缩等的领域有广泛应用,也是图像处理的基础。

图像的轮廓往往携带着一幅图像的大部分信息。

而轮廓即在于图像的不规则结构和不稳定上,也存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是我们在图像边缘检测时所需的非常重要的特征条件,因而这就需要我们对一幅图像检测并提取出它的轮廓。

经典的轮廓提取技术大都基于微分运算。

首先通过平滑来滤除图像中的噪声,然后进行一阶微分或二阶微分运算,求得梯度最大值或二阶导数的过零点,最后选取适当的阈值来提取边界。

本次课设所用的轮廓提取算法非常简单,就是掏空内部点:如果原图中有一点为黑,且它的8个相邻点都是黑色时(此时该点是内部点),则将该点删除。

要注意的是,我们处理的虽然是二值图,但实际上是256级灰度图,不过只用到了0和255两种颜色。

4 边缘检测的算法比较特征提取作为图像边缘检测的一个重要内容,发展了众多的方法。

这些方法经过实践的检验,成为了经典的内容。

经典的边缘检测算子包括:Roberts 算子、Prewitt 算子、Sobel 算子、Log 算子、Canny 算子等,这些经典的边缘提取算子在使用时都是使用预定义的边缘模型去匹配。

相关主题