![机器视觉技术](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=1739283619-e7oaWZXejJqGTwErMBn3VteBMxm1MQms-0-bff8fd58ca88ad9c81ee4e36fc7b8948)
图4.3 用于模板匹配的各个掩模模式(Prewitt算子)
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image61.jpeg?sign=1739283619-dRWisFWDQQm3QbUAeugnnj10n42UakWy-0-2fa2017031e93cbbd3ef69cd438caf5e)
图4.4 模板匹配的计算例
图4.5是一帧图像采用不同微分算子处理的结果。可以看出,采用不同的微分算子,处理结果是不一样的。在实际应用时,可以根据具体情况选用不同的微分算子,如果处理效果差不多,要尽量选用计算量少的算子,这样可以提高处理速度。例如,在图4.5中,(b)和(d)的微分效果差不多,但是(b)Sobel算子的计算量就会比(d)Prewitt算子少很多。
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image62.jpeg?sign=1739283619-NiU1RrJmKHfG6NFlSE1fvO9tMMtlffOw-0-2439f264b33bf90638c6b53a3eff77b4)
图4.5 不同算子的微分图像
另外,当目标对象的方向性已知时,如果使用模板匹配算子,就可以只选用方向性与目标对象相同的模板进行计算,这样可以在获得良好检测效果的同时,大大减少计算量。例如,在检测公路上的车道线时,由于车道线是垂直向前的,也就是说需要检测左右边缘,如果选用Prewitt算子,可以只计算检测左右边缘的③和⑦,这样就可以使计算量减少到使用全部算子的1/4。减少处理量,对于实时处理,具有非常重要的意义。
此外,在模板匹配中,经常使用的还有图4.6所示的Kirsch算子和图4.7所示的Robinson算子等。
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image63.jpeg?sign=1739283619-zlU1aKqQYRap3naiaeH3dfStwQkNxgiL-0-3f6a89ace9743acf0579bc5368cfd4d4)
图4.6 Kirsch算子
![](https://epubservercos.yuewen.com/637884/14262462405105906/epubprivate/OEBPS/Images/image64.jpeg?sign=1739283619-NiTUNTVPLZTDXZZbaiduTph2t4Es2D18-0-e3e6b9c15aac54d08c3afee8cc29ea2f)
图4.7 Robinson算子