关于emwin的显示,lcd的使用什么的,我就不废话了,st的板子都一样,另外论坛也有了大量的写的很优秀的入门**
Sobel算子是一种一阶微分算子,主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。它是一种计算机视觉领域的重要方法。
如下图所示,对lena提取的边缘图像
对于应用如此广泛的sobel,奇怪的是,竟然没有一篇正是的论文发表,而且各个来源出去也不一样。
原来,这个著名的Sobel边缘算子,当年作者并没有公开发表过论文,仅仅是在一次博士生课题讨论会(1968)上提出("A 3x3 Isotropic Gradient Operator for Image Processing"),后在1973年出版的一本专著("Pattern Classification and Scene Analysis")的脚注里作为注释出现和公开的【1】
【1】An Isotropic 3 3 Image Gradient Operator .Research gate.2010-04-9[引用日期2014-08-10]
在讨论边缘算子之前,首先给出一些术语的定义:
l (1)边缘:灰度或结构等信息的突变处,边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。 l (2)边缘点:图像中具有坐标[x,y],且处在强度显著变化的位置上的点。 l (3)边缘段:对应于边缘点坐标[x,y]及其方位 ,边缘的方位可能是梯度角。
梯度算子为什么能够检测边缘 在网络上暂时没找到更详细的阐述,我写一下我自己的理解 函数的极值求解微分为0,那么在极值点前后必然经历一次灰度的跃变,比如由白色突然转向黑色,而这也就是我们所要找的边缘。 梯度方向是变化最快的方向 梯度大小,是xy两个方向的2范数。
那么sobel利用加权差分的做法来实现微分运行,图像的不连续性
于是可以得到卷积模板
一个x方向,一个y方向。 在简述一下过程
用模板卷积的方式来实现对x方向和y方向的差分求解。 然后求得梯度大小和方向。
当梯度大小>一个阈值,那么判定为边缘,否则不是边缘
在上篇**的基础上。读取bmp图片,然后转换成灰度图像,计算sobel算子边缘结果,显示出来,代码
如果不想显示灰度的sobel,想试试彩色图片的sobel呢,当然可以,用r、g、b分量分别计算。然后显示,那么就是彩色的了。代码
如果对仅仅x,y方向两个方向不满足,想要更多方向的微分计算,当然也可以,将模板旋转一下就可以,代码没有 |