# -*- coding: utf-8 -*-
|
|
|
#提取电压任务 在返回的图片上截取出液晶屏幕的大小尺寸
|
__author__ = '上海色宁'
|
|
import os
|
import sys
|
import cv2
|
import numpy as np
|
import datetime
|
|
|
def task_init_load_digits():
|
|
# 加载数字模板
|
path = './templates' # 这个地方就是获取当前运行目录 获取函数在主函数里面
|
#和模板的数字进行匹配
|
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.3 :
|
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) # 读取图片
|
|
|
|