前言
之前有针对图片的模板匹配有做了一个简单的版本: 使用 gocv 进行图片的模板匹配, 接下来针对做一下优化:
- 之前代码写在一起, 现在当然要抽象出来
- 允许多个原图进行多个模板来匹配
- 最后输出的效果图,如果有多个模板匹配的话,都要全部圈出来
实操
首先 原图就两个 (1.jpg
和 2.jpg
), 然后模板图有3个 (分别是从 1.jpg
扣下一块, 从 2.jpg
扣下两块)。 最后奉上代码:
1 | package main |
然后执行一下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17[root@VM-16-29-centos test]# go run main.go
----start match: 1.jpg
Template: temp-2.jpg -> max confidence 0.251532, 161, 245
Template: temp-2.jpg -> Max confidence of 0.251532 is too low. Not match
Template: temp-3.jpg -> max confidence 0.500531, 235, 277
Template: temp-3.jpg -> Max confidence of 0.500531 is too low. Not match
Template: temp-4.jpg -> max confidence 0.999982, 295, 249
Template: temp-4.jpg -> Max confidence of 0.999982 is high. Match !!!
----end match 1.jpg, use 188 ms, match count: 1
----start match: 2.jpg
Template: temp-2.jpg -> max confidence 0.999996, 724, 59
Template: temp-2.jpg -> Max confidence of 0.999996 is high. Match !!!
Template: temp-3.jpg -> max confidence 0.999994, 834, 255
Template: temp-3.jpg -> Max confidence of 0.999994 is high. Match !!!
Template: temp-4.jpg -> max confidence 0.452608, 764, 382
Template: temp-4.jpg -> Max confidence of 0.452608 is too low. Not match
----end match 2.jpg, use 707 ms, match count: 2
可以看到 第一张原图 match 一个模板, 总耗时 188ms, 第二张原图 match 了两个模板, 总耗时 707 ms
可以看下输出的结果图:
可以看到输出结果图是有正确圈出匹配的模板的。