使用了opencv的python接口
注意使用了非自由的sift/surf(需要编译nonfree的opencv-contrib-python库)
- 准备:
- 准备识别的模板(截图抽奖大圆圈)
data/tem2x.png
- 准备奖品时间照片放在
data/times/*.png
- 计算抽奖目标区域相对于模板的位置和大小
- 计算
data/times/*.png
的sift/surf,储存在字典 - 计算
data/tem2x.png
的sift/surf - 实际计算
- 用skimage.io读取输入文件/url
- 计算输入的sift/surf
- knn比对
- 若比对点少于30视为未找到,放弃
- 否则截取目标区域并计算sift/surf,分别与字典内的数据比对,取最大值为结果
主要代码复制自opencv官网文档 https://docs.opencv.org/3.4.3/dc/dc3/tutorial_py_matcher.html
若干博客内容
维基百科