优化代码时可以把计算分为两类:
- 与输出直接关联的必要计算
- 与输出间接关联的计算
以模板匹配为例,对全图进行模板匹配,输出匹配程度最高的坐标。
- 输出坐标所在窗口与模板的匹配计算即为直接关联的必要计算
- 其他窗口与模板的匹配计算为间接关联的计算,其结果不输出,但由于需要排序寻找最高匹配度,其结果与输出是间接相关的。
效率优化主要为间接关联计算的缩减。毕竟改进匹配算法效率不是轻易就能做到的事情。
针对模板匹配问题,既然其他窗口的匹配计算结果收益不高,优化方向自然可以考虑减少匹配次数。如果模板像素尺寸为 100*100,那么大概率不需要进行一个像素一个像素的滑窗匹配。如果模板图形较为简单,可能只需要 32*32 像素的模板即可。即进行一次低分辨率的粗略匹配定位大致的区域,然后再进行高精度匹配。