(1)一阶微分算子
边缘检测是检测图像局部显著变化的最基本运算。在一文情况下,阶跃边缘同图像的一阶导数局部峰值有关,这里利用 Sobel 算子进行检测。
Sobel 边缘是一种非线性的边缘检测算法,效率很高,用途广泛。Sobel 边缘检测的基本方法是在 x,y 方向上分别是用不同的两个卷积核,如下图所示。
图 4.3.2 Sobel 算子的卷积核
如果是用 x,y 方向卷积核得出的某一像素值分别为 x,y,则该像素的边界强度 q 和方向∂ 可用下公式计算。
(4-3)
这种计算的计算量非常大,在实际应用中,经常采用高效的近似方法,下面介绍其中的一种。设当前考查的区域为:
(4-4)
经过其中心点 e 的直线共有 4 条,即 a-ei,b-e-h,c-e-g,d-e-f;其中每一条直线都将区域划分为两部分,每一部份有 3 个像素,称之为一个子区域。例如直线 c-e-g 将区域划分为 a,b,d,和 f,h,i 两个子区域。分别计算出每条直线的两个子区域平均值之差的绝对值,并得到 4 个值中最大的付给中心像素 e。
用 Sobel 算法对图像中每一像素进行处理后,通常还需要对输出图像做阈值化处理。
(2) 二阶微分算子
如果所求的一阶导数高于某一阈值,则确定该点为边缘点。这样做会导致检测的边缘点太多。一种更好的方法就是求梯度局部最大值对应的点,并认定它们是边缘点,通过去除一阶导数中的非局部最大值,可以检测出更精确的边缘。一阶导数的局部最大值对应着二阶导数的零交点这意着在边缘点处有一阶导数的峰值,同样地,有二阶导数的零交叉点。这样,通过找图像强度的二阶导数的零交叉点就能找到边缘点。
4.3.3 哈夫(Hough)变换
一种在同样结构上的点聚类的方法是记录所有点能具有的所有结构,然后看看哪一结构有最多的投票。这种技术称为哈夫变换。哈夫变换最成功的应用是在直线检测上,一条直线很容易地参数化为点集(x,y),使得:xcosθ+ysinθ+r=0 现每一个(θ,r)对代表一条惟一的直线,其中 r 表示该直线与原点的垂直距离,0≤θ≤2π。把点对的集合(θ,r)叫作直线空间,在直线空间中,由 r=-x1cosθ+y1sinθ给定的某条曲线上的直线都通过点样本(x1,y1)。然后统计哪一个(θ,r)所代表的直线上样本点最多,那么这条直线就是检测的直线。哈夫变换还可以检测曲线,本文主要应用哈夫变换来检测圆。哈夫变换检测圆的原理与直线类似,针对不同的半径、圆心统计样本点在哪个圆周上最多,既是检测的圆,然后保存检测圆的半径与圆心信息。
5 零件识别与检测
5.1 系统组建
5.1.1 系统构成
零件识别与检测系统由图像采集卡、CCD 摄像头及 PC 机组成。图像采集卡与 CCD 用来采集图像数据,并负责把数据传送到 PC 机内存中;PC 机上装有监控软件与图像处理软件、数据库软件等。监控软件负责 PLC 与 CCD 摄像头之间的协调工作,CCD 摄像头安装在搬料系统之后,系统原理如图 5.1。
图 5.1.1.1识别与检测系统原理图
系统分为如下三部分:
(1) 工件图像的采集部分:完成图像的实时采集,并将图像数据保存于内存中等待处理(对应于图中的图像采集);
(2) 图像分析处理部分:对所采集到的图像进行预处理,在此基础上提取图像的特征要素(对应于图中的图像预处理与图像特征提取); Matlab生产自动化实验系统机器视觉单元设计+CAD图纸(11):http://www.youerw.com/zidonghua/lunwen_276.html