![机器视觉技术](https://wfqqreader-1252317822.image.myqcloud.com/cover/898/25794898/b_25794898.jpg)
4.3 基于模板匹配的边缘检测
模板匹配(template matching)就是研究图像与模板(template)的一致性(匹配程度)。为此,准备了几个表示边缘的标准模式与图像的一部分进行比较,选取最相似的部分作为结果图像。如图4.3所示的Prewitt算子,共有对应于8个边缘方向的8种掩模(mask)。图4.4说明了这些掩模与实际图像如何进行比较。与微分运算相同,目标像素及其周围(3×3邻域)像素分别乘以对应掩模的系数值,然后对各个积求和。对8个掩模分别进行计算,其中计算结果中最大的掩模的方向即为边缘的方向,其计算结果即为边缘的强度。
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image60.jpeg?sign=1738930712-mW5FjEZr46mKrQrC82mdlsF9TjxvZAlI-0-64d3aa30893ed9ccbea07ba643a45910)
图4.3 用于模板匹配的各个掩模模式(Prewitt算子)
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image61.jpeg?sign=1738930712-lurpxHvpLR3QEKiGoVz7KqlW9ASEPnN2-0-ae62033f0f2f2734d535c235d1549ab8)
图4.4 模板匹配的计算例
图4.5是一帧图像采用不同微分算子处理的结果。可以看出,采用不同的微分算子,处理结果是不一样的。在实际应用时,可以根据具体情况选用不同的微分算子,如果处理效果差不多,要尽量选用计算量少的算子,这样可以提高处理速度。例如,在图4.5中,(b)和(d)的微分效果差不多,但是(b)Sobel算子的计算量就会比(d)Prewitt算子少很多。
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image62.jpeg?sign=1738930712-3AL6MAeemXX1kooprgcxfFbbaAa7xNjk-0-dba76acc6e0ca557cb99f0493af7dcd0)
图4.5 不同算子的微分图像
另外,当目标对象的方向性已知时,如果使用模板匹配算子,就可以只选用方向性与目标对象相同的模板进行计算,这样可以在获得良好检测效果的同时,大大减少计算量。例如,在检测公路上的车道线时,由于车道线是垂直向前的,也就是说需要检测左右边缘,如果选用Prewitt算子,可以只计算检测左右边缘的③和⑦,这样就可以使计算量减少到使用全部算子的1/4。减少处理量,对于实时处理,具有非常重要的意义。
此外,在模板匹配中,经常使用的还有图4.6所示的Kirsch算子和图4.7所示的Robinson算子等。
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image63.jpeg?sign=1738930712-FwescjCIR6LgaqJDVJdJ3EEj9Sx9n7AR-0-46b03f68eb46576d431bbfee9e568a23)
图4.6 Kirsch算子
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image64.jpeg?sign=1738930712-PGEgFrb1ArP1CjI0kFAgKrNsXQ6SsbxW-0-ce093c907e55762493416041ecfda880)
图4.7 Robinson算子