边缘在边界检测、图像分割、模式识别、机器视觉等中有很重要的作用。边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括深度上的不连续、表面方向不连续、物质属性变化和场景照明变化。边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。
图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
在讨论边缘算子之前,首先给出一些术语的定义:
(1)边缘点:图像中具有坐标 且处在强度显著变化的位置上的点.
(2)边缘段:对应于边缘点坐标 及其方位 ,边缘的方位可能是梯度角.
(3)边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法.
(4)轮廓:边缘列表,或是一条表示边缘列表的拟合曲线.
(5)边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向序.
(6)边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程.
(a)阶跃型 (b)房顶型 (c)突圆型
边缘灰度变化
1.3 Visual C++图像编程
1.3.1 Visual C++概述
VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用C++的一个开发平台。严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。
采用VC++来实现图像编程的主要原因是,与Java和C#等现代编程语言相比,C++在程序运行的效率、内存使用的可控性和编程的灵活性上具有优势。图像处理需要大量的图像数据运算,经常使用复杂、费时的算法,因此图像处理程序的运行效率非常重要。C++代码被编译成汇编语言,可以直接在处理器上运行,效率很高。
1.3.2 VC++的特点
本文介绍的Visual C++是数字图像处理运动检测系统的开发工具,本运动检测系统是以VC++为软件平台建立起来的。Visual C++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统。从功能上来看,它除了继承了MFC1.0的全部功能外,还增加了以下新的特性:
① 全面支持文件的Open、Save和Save As等菜单项,并且采用了最近才使用的文件列表形式。
② 可以方便地进行打印和打印预显。
③ 支持滚动窗口和切分窗口(Splitter Window)。
④ 支持工具条(Toolbar)和状态条(Status bar).
⑤ 能够处理Microsoft Visual Basic控制。
⑥ 能够方便地实现上下文相关帮助(Context Sensitive Help)。
⑦ 能够自动处理进入对话框中的数据。
⑧ 实现OLE的接口更加简单、方便。
因此,它现在已经成为开发Win32程序,包括图像处理程序的主要开发工具。
1.3.3 VC++的组成
Visual C++包含了两套完整的Windows应用开发系统。由以下的部分组成:
(1) Visual工作平台和创建过程:这是一个运行于Windows上的交互式开发环境,它是直接从Microsoft QuickC for Windows演化而来的。 基于VC++的图像边缘检测系统设计(3):http://www.youerw.com/jisuanji/lunwen_10884.html