VC++建立图像样本数据库实现图像边缘检测(2)
时间:2017-06-10 15:02 来源:毕业论文 作者:毕业论文 点击:次
慢融入我们生活的每一个角落。 图像边界处理对于进行高层次的特征提取、特征描述、目标识别和图像理 解等有着重大的影响。因此,边缘检测在图像分割、模式识别、计算机视觉等众 多方面都有着非常重要的地位。边缘检测的研究有着久远的历史,其原因一方面 是由于课题本身的重要性,另一方面也反映了这个课题的深度和难度。所以,边 缘检测方面的研究具有非常重要的理论意义[5]。 1.3 本文的主要工作与内容安排 利用Visual C++以及建立的图像样本数据库,实现图像边缘检测,具体包括 图像边缘变化特征提取、边缘检测算法的设计及检测结果显示等功能。 (1)对图像进行特征提取; (2)对原图像进行二值化; (3)选择最优算法; (4)处理后的图像与原图像进行对比; (5)得出结论。 2 图像边缘检测原理 图像的边缘具有以下几个特征,即: 1)灰度值出现不连续变化 2)灰度变化具有方向性 3)边缘两侧存在纹理差异及物质属性变化 4)场景内,边缘两侧的光照亮度不同 完整的边缘检测算法应该包括:提取边界点集、提出某些边界点、填补间断 点从而形成封闭边界。因此,边缘以上的属性决定了边缘检测的原理,即:由于 微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处其灰度 变化较大,故该处微分计算值较高,可将这些微分值作为相应点的边缘强度,通 过阈值来提取边缘点,即如果微分值大于阈值,则为边缘点。图像的边缘点主要 有三种(如图 1-1):第一种是阶梯型边缘,该边缘两侧的灰度值有明显的变化; 第二种是屋脊型边缘,该边缘中间的灰度值与两边的灰度值有明显的差异。第三 种是线性型边缘,该边缘中间的灰度值与两边的灰度值差异很大,它与屋脊边缘 的差别在于,屋脊边缘从侧边到中间灰度值的变化是逐渐变化的,而线性边缘从 侧边到中间灰度值的变化是瞬间变化的。 上述三种边缘类型对于不同的图像采用不同的算子,而边缘检测算子的选取 也根据图像中间的灰度值与两侧灰度值的不同而选取不一样的检测方法。 2.1 边缘检测算子 边界检测算子是利用图像边界突变性质来检测边缘的。主要由以下几种类 型:一种是以一阶导数为基础的边缘检测算子,在算法的实现过程中,通过2*2 或3*3作为核与图像的每个像素点做卷积和运算,然后提取合适的阈值以提取边 缘,如Robert算子、Sobel算子、Prewitt算子;另一种是以二阶导数为基础的边缘 检测算子,通过寻求二阶导数中过零点来检测边缘,如Laplacian算子。 用算子检测图像边缘的方法是用小区域模板对图像进行处理,即采用卷积核 作为掩模模板在图像中依次移动,完成图像中每个像素点同模板的卷积运算,最 终输出的边缘幅度结果可以检测出图像的边缘。 卷积运算是一种邻域运算。 图 像处理认为某一点像素的结果不但和本像素灰度有关,而且和其邻域点值有关。 运用模板在图像上依此对每一个像素进行卷积,即模板上每一个点的值与其在图 像上当前位置对应的像素点值相乘后再相加,得出的值就是该点处理后的新值。 许多经典算子都是基于上述理论提出来的,如Sobel算子、 Robert算子、 Prewitt 算子等。但在具体应用时,由于数字图像的离散性,所以在数字图像中常常用图 (责任编辑:qin) |