# -*- coding: utf-8 -*- #提取电压任务 在返回的图片上截取出液晶屏幕的大小尺寸 __author__ = '上海色宁' import os import sys import cv2 import numpy as np import datetime def task_init_load_digits(): # 加载数字模板 path = './data' # 这个地方就是获取当前运行目录 获取函数在主函数里面 #和模板的数字进行匹配 digits.append([cv2.imread(path + "/@-0.jpg",cv2.IMREAD_GRAYSCALE),'@']) digits.append([cv2.imread(path + "/@-1.jpg",cv2.IMREAD_GRAYSCALE),'@']) digits.append([cv2.imread(path + "/@-2.jpg",cv2.IMREAD_GRAYSCALE),'@']) digits.append([cv2.imread(path + "/0-0.jpg",cv2.IMREAD_GRAYSCALE),0]) digits.append([cv2.imread(path + "/0-1.jpg",cv2.IMREAD_GRAYSCALE),0]) digits.append([cv2.imread(path + "/1-0.jpg",cv2.IMREAD_GRAYSCALE),1]) digits.append([cv2.imread(path + "/1-1.jpg",cv2.IMREAD_GRAYSCALE),1]) digits.append([cv2.imread(path + "/2-0.jpg",cv2.IMREAD_GRAYSCALE),2]) digits.append([cv2.imread(path + "/2-1.jpg",cv2.IMREAD_GRAYSCALE),2]) digits.append([cv2.imread(path + "/3-0.jpg",cv2.IMREAD_GRAYSCALE),3]) digits.append([cv2.imread(path + "/4-0.jpg",cv2.IMREAD_GRAYSCALE),4]) digits.append([cv2.imread(path + "/5-0.jpg",cv2.IMREAD_GRAYSCALE),5]) digits.append([cv2.imread(path + "/5-1.jpg",cv2.IMREAD_GRAYSCALE),5]) digits.append([cv2.imread(path + "/5-2.jpg",cv2.IMREAD_GRAYSCALE),5]) digits.append([cv2.imread(path + "/6-0.jpg",cv2.IMREAD_GRAYSCALE),6]) digits.append([cv2.imread(path + "/7-0.jpg",cv2.IMREAD_GRAYSCALE),7]) digits.append([cv2.imread(path + "/8-0.jpg",cv2.IMREAD_GRAYSCALE),8]) digits.append([cv2.imread(path + "/8-1.jpg",cv2.IMREAD_GRAYSCALE),8]) digits.append([cv2.imread(path + "/8-2.jpg",cv2.IMREAD_GRAYSCALE),8]) digits.append([cv2.imread(path + "/8-3.jpg",cv2.IMREAD_GRAYSCALE),8]) digits.append([cv2.imread(path + "/8-4.jpg",cv2.IMREAD_GRAYSCALE),8]) digits.append([cv2.imread(path + "/9-0.jpg",cv2.IMREAD_GRAYSCALE),9]) digits.append([cv2.imread(path + "/9-1.jpg",cv2.IMREAD_GRAYSCALE),9]) digits.append([cv2.imread(path + "/9-2.jpg",cv2.IMREAD_GRAYSCALE),9]) digits.append([cv2.imread(path + "/9-3.jpg",cv2.IMREAD_GRAYSCALE),9]) digits.append([cv2.imread(path + "/9-4.jpg",cv2.IMREAD_GRAYSCALE),9]) digits = [] def get_most_simmilar_digit(target_img): source = [] #img_gray = cv2.cvtColor(target_img, cv2.COLOR_BGR2GRAY) #ret, binary = cv2.threshold(img_gray,0,255,cv2.THRESH_BINARY | cv2.THRESH_OTSU) #循环对比模板的图片 if len(digits) <5: task_init_load_digits() for digitROI in digits: res = cv2.matchTemplate(target_img, digitROI[0], cv2.TM_CCOEFF_NORMED) max_val = cv2.minMaxLoc(res)[1] source.append(max_val) #print(max(source)) if max(source) > 0.5 : return str(digits[source.index(max(source))][1]) else: return "@" if __name__ == '__main__': input_dir = "images52" filename = os.listdir(input_dir) # 获取文件夹文件 for file in filename: image = cv2.imread(input_dir + "/" + file,0) # 读取图片 ret, binary = cv2.threshold(image,0,255,cv2.THRESH_BINARY | cv2.THRESH_OTSU) num = get_most_simmilar_digit(binary) cv2.imwrite("images52_infer/" + str(num)+"_" + file,binary) # 读取图片