HyperLPR 高性能中文车牌识别系统分析(四)

2021SC@SDUSC

概述

本篇依旧是对pipline.py文件中的SimpleRecognizePlate()函数展开解析,逐渐深挖至底层

此次文章主要分析SimpleRecognizePlate()函数部分代码,如下

ptype = td.SimplePredict(plate)
        if ptype>0 and ptype<5:
            plate = cv2.bitwise_not(plate)

代码分析

ptype = td.SimplePredict(plate)

引入了hyperlpr_py3文件夹下的typeDistinguish.py文件的simplePredict()函数,即

def SimplePredict(image):
    image = cv2.resize(image, (34, 9))
    image = image.astype(np.float) / 255
    res = np.array(model.predict(np.array([image]))[0])
    return res.argmax()

首先调用库cv2的resize()函数对图片进行裁剪操作,将图片裁剪至对应车牌大小

然后使用了astype()函数,对图片进行强制类型转换,主要目的是为防止image中的数据超出float64的边界,导致数据的出错

再然后,对该图片进行一个输出预测

最后返回一个图像的维度的最大值的序号

argmax()函数

该函数用于返回指定维度最大值的序号

if ptype>0 and ptype<5:
            plate = cv2.bitwise_not(plate)

根据返回图像的维度的最大值的序号,将图片里像素值进行按位反向的操作

cv2.bitwise_not()函数

image = cv2.bitwise_not(src, dst=None, mask=None)

其中src表示要进行操作的图像,dst是输出的图像(其实就是得到的image),一般不写就好了

bitwise_not的作用是取反操作

例子:下为脸部面具图,背景为白色,利用按位操作及掩膜技术清晰抠出面具轮廓。

对脸部面具图里的像素值进行按位反后获得的图像

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值