# -*- coding: utf-8 -*-
|
|
|
#测试模板匹配灰度
|
__author__ = '上海色宁'
|
|
import os
|
import sys
|
import cv2
|
from cv2 import waitKey
|
import numpy as np
|
import uuid
|
|
|
def load_digits():
|
# 加载数字模板文件夹
|
path = './tm' # 这个地方就是获取当前运行目录 获取函数在主函数里面
|
#多加几个模板图片
|
|
|
digits.append(cv2.imread(path + "/t_00.jpg"))
|
digits.append(cv2.imread(path + "/t_01.jpg"))
|
digits.append(cv2.imread(path + "/t_02.jpg"))
|
digits.append(cv2.imread(path + "/t_03.jpg"))
|
digits.append(cv2.imread(path + "/t_04.jpg"))
|
digits.append(cv2.imread(path + "/t_05.jpg"))
|
digits.append(cv2.imread(path + "/t_06.jpg"))
|
digits.append(cv2.imread(path + "/t_07.jpg"))
|
digits.append(cv2.imread(path + "/t_08.jpg"))
|
digits.append(cv2.imread(path + "/t_09.jpg"))
|
|
|
def get_most_simmilar_digit(target_img):
|
source = []
|
for digitROI in digits:
|
res = cv2.matchTemplate(target_img, digitROI, cv2.TM_CCOEFF_NORMED)
|
max_val = cv2.minMaxLoc(res)[1]
|
source.append(max_val)
|
print(source.index(max(source)))
|
#判断匹配度,大于0.5的选取
|
if max(source) > 0.5 :
|
return source.index(max(source))
|
else:
|
return '-'
|
|
|
|
|
digits = []
|
|
# 测试
|
if __name__ == '__main__':
|
load_digits()
|
path = "./images"
|
filename = os.listdir(path) # 获取文件夹文件
|
for file in filename:
|
img = cv2.imread(path + "/" + file) # 读取图片
|
cv2.imshow('a',img)
|
waitKey(0)
|
addtext =get_most_simmilar_digit(img)
|
if not addtext=="-" :
|
cv2.imwrite(path + "2/"+str(addtext)+"__"+file,img)
|
if cv2.waitKey(1) & 0xFF == ord('q'):
|
break
|