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