基于HyperLPR的车牌识别(七)
2021SC@SDUSC源代码下载地址:HyperLPR: HyperLRP是一个开源的、基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP、C/C++、Python语言,Windows/Mac/Linux/Android/IOS 平台。https://gitee.com/zeusees/HyperLPR源码配置的详情见第一篇分析这一次分析以下代码:image_rgb =
·
2021SC@SDUSC
源码配置的详情见第一篇分析
这一次分析以下代码:
image_rgb = fv.finemappingVertical(image_rgb)
cache.verticalMappingToFolder(image_rgb)
print("e2e:", e2e.recognizeOne(image_rgb))
image_gray = cv2.cvtColor(image_rgb,cv2.COLOR_RGB2GRAY)
首先是 image_rgb = fv.finemappingVertical(image_rgb)
def finemappingVertical(image):
resized = cv2.resize(image,(66,16))
resized = resized.astype(np.float)/255
res= model.predict(np.array([resized]))[0]
print("keras_predict",res)
res =res*image.shape[1]
res = res.astype(np.int)
H,T = res
H-=3
#3 79.86
#4 79.3
#5 79.5
#6 78.3
#T
#T+1 80.9
#T+2 81.75
#T+3 81.75
if H<0:
H=0
T+=2;
if T>= image.shape[1]-1:
T= image.shape[1]-1
image = image[0:35,H:T+2]
image = cv2.resize(image, (int(136), int(36)))
return image
它使用的是这个方法,
输入参数:
裁剪的车牌区域图像(Mat类型),rect也是裁剪的车牌部分的图像(Mat类型)
实现处理:
1.将原来车牌图像resize大小:66*16*3
2.将原来灰度图颜色通道[0, 255]转化为float类型[0,1]
3.将输入66*16(float),输入进模型进行测试self.modelFineMapping.predict
然后是 cache.verticalMappingToFolder(image_rgb)
import cv2
import os
import hashlib
def verticalMappingToFolder(image):
name = hashlib.md5(image.data).hexdigest()[:8]
print(name)
cv2.imwrite("./cache/finemapping/"+name+".png",image)
就是将处理之后的图片进行加密储存。
后两个都是之前的文章已经提到过了,就不再再次说了,详情可以看之前的文章。
更多推荐
已为社区贡献1条内容
所有评论(0)