# -*- coding: utf-8 -*- __author__ = '上海色宁' import os import sys import cv2 import numpy as np import uuid def load_digits(): # 加载数字模板 path = './templates' # 这个地方就是获取当前运行目录 获取函数在主函数里面 digits.append([cv2.imread(path + "/00.jpg"),0]) digits.append([cv2.imread(path + "/00-2.jpg"),0]) digits.append([cv2.imread(path + "/01.jpg"),1]) digits.append([cv2.imread(path + "/02.jpg"),2]) digits.append([cv2.imread(path + "/03.jpg"),3]) digits.append([cv2.imread(path + "/04.jpg"),4]) digits.append([cv2.imread(path + "/05.jpg"),5]) digits.append([cv2.imread(path + "/06.jpg"),6]) digits.append([cv2.imread(path + "/07.jpg"),7]) digits.append([cv2.imread(path + "/7-1.jpg"),7]) digits.append([cv2.imread(path + "/7-2.jpg"),7]) digits.append([cv2.imread(path + "/08.jpg"),8]) digits.append([cv2.imread(path + "/8-1.jpg"),8]) digits.append([cv2.imread(path + "/8-2.jpg"),8]) digits.append([cv2.imread(path + "/8-3.jpg"),8]) digits.append([cv2.imread(path + "/8-4.jpg"),8]) digits.append([cv2.imread(path + "/09.jpg"),9]) digits.append([cv2.imread(path + "/9-1.jpg"),9]) def get_most_simmilar_digit(target_img): source = [] # 遍历数字模板 for digitROI in digits: # 进行模板匹配 #cv2.imshow('target_img',target_img) #cv2.imshow('digitROI',digits[4]) res = cv2.matchTemplate(target_img, digitROI[0], cv2.TM_CCOEFF_NORMED) max_val = cv2.minMaxLoc(res)[1] source.append(max_val) #print(source) print(source.index(max(source))) if max(source) > 0.5 : return digits[source.index(max(source))][1] else: return '-' digits = [] # 测试 if __name__ == '__main__': load_digits(); path = "sliptimage-gray" filename = os.listdir(path) # 获取文件夹文件 for file in filename: img = cv2.imread(path + "/" + file) # 读取图片 ''' t,dst1 = cv2.threshold(img,127,255,cv2.THRESH_BINARY) HSV = cv2.cvtColor(dst1, cv2.COLOR_BGR2HSV) H, S, V = cv2.split(HSV) LowerYellow = np.array([20, 20, 20]) UpperYellow = np.array([30, 255, 255]) mask = cv2.inRange(HSV, LowerYellow, UpperYellow) YelloThings = cv2.bitwise_and(dst1, dst1, mask=mask) #cv2.imshow("src",YelloThings) #cv2.waitKey(0) ''' addtext =get_most_simmilar_digit(img) if not addtext=="-" : cv2.imwrite(path + "22/"+str(addtext)+"__"+file,img) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows()