小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!

一.第一步,对于小白来说,用什么编辑很难选择,怎么下载免费的编辑器也不会,会用电脑下载的又总是被下载许多附带的垃圾软件,这个问题让我来解决,这里我们首先需要安装两个软件以及配置一个pip豆瓣源,第一个python 3.6.5的软件,然后安装pycharm-community编辑软件。
给上百度网盘链接,绝对无垃圾软件安装,小白们放心安装:
链接:https://pan.baidu.com/s/1WKpEG9qBPRZW-V1UTemUpQ
提取码:y6z2
pip豆瓣源配置
介绍:
pip豆瓣源配置是为了之后在搭环境时候可以直接用pip install xxx(这里写python库的名字)的命令加速下载所需要的各种python库,如果不配置pip源的话,直接下载库速度会很慢,而且还会经常下载失败,pip源也分为阿里云、豆瓣、清华大学、中国科学技术大学四种,在这里我们配置pip豆瓣源,豆瓣源内python库比较种类全而且相对较稳定。
步骤:
1.下载好网盘内的三个文件后,找到pip文件夹
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第1张图片

2.将pip文件复制后,找到C盘的用户文件夹
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第2张图片

3.将用户文件夹打开,找到Administrator文件夹
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第3张图片

4.打开Administrator文件夹,将复制的pip文件夹放入该Administrator目录下,完成pip豆瓣源的配置。
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第4张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第5张图片
python软件安装
介绍:
python软件是最基础的python运行的软件,安装python能够实现一般的python程序运行。
步骤:
1.找到python-3.6.5-amd64.exe软件,点击开始安装python3.6.5软件
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第6张图片

2.勾上Add Python 3.6 to PATH
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第7张图片

3.点击Install Now
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第8张图片

4.出现Close说明安装完成,点击Close完成安装
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第9张图片
Pycharm-Community软件安装
介绍:
pycharm-community软件是python的可视化软件,能够在其中展现运行的界面和运行的过程,并且能够在其中配置python软件的环境,实现两个软件同时实现可视化编程。
步骤:
1.找到pycharm-community-2020.2.1.exe文件,点击开始安装pycharm-community软件。
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第10张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第11张图片

2.点击Next
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第12张图片

3.选择你安装的路径,在这里我安装在默认的路径中,继续点击Next
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第13张图片

4.勾选64-bit launcher和Add launchers dir to the PATH,继续点击Next
在这里插入图片描述
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第14张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第15张图片

5.点击Install
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第16张图片

6.等待安装
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第17张图片

7.出现Finish,说明完成安装,点击Finish结束安装
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第18张图片

8.在桌面找到pycharm图标,双击图标
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第19张图片

9.选择New Project,打开新项目
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第20张图片

10.选择Esting interpreter,选择python路径
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第21张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第22张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第23张图片

11.点击Creat创建第一个新项目
在这里插入图片描述
二.环境终于安装成功了吧,现在开始我们的项目实操,从人脸识别做到车牌识别。
人脸识别部分,素材和模型我们需要获取,同样给你们网盘链接,永久有效
链接:https://pan.baidu.com/s/1iRwQ1pLTErgrwohzqH_V8A
提取码:5w1s
人脸图片识别
1.下载opencv-python库,在Terminal中使用命令pip install opencv-python
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第24张图片

2.右键点击pythonProject,新建一个imageProcessing.py文件,如下图
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第25张图片

3.在imageProcessing.py文件中开始写代码,首先导入cv2库,如下图
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第26张图片

4.输入素材图片的路径,素材在发的文档里面找,名字是3.jpg
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第27张图片
在这里插入图片描述

5.找到人脸识别的类型器,将类型器复制到项目中,写入类型器的路径并赋予变量cascPath
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第28张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第29张图片

6.使用cv2库读取图片的路径
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第30张图片

7.将图片从rgb颜色格式转成gray灰色格式
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第31张图片

8.通过cv2.CascadeClassifier(cascPath).detectMultiScale函数进行人脸识别处理,并且输出该图片有几张人脸。参数scaleFactor是图像长宽同时按照一定比例(默认1.1)逐步缩小,然后检测,参数设置的越大,计算速度越快,参数minNeighbors 是模糊度参数,设置越小越容易识别,越大越不容易识别,参数minSize是最小的长和宽像素。
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第32张图片

9.在原图的人脸上画出识别的矩形区域,(0, 0, 255)是红色、(0, 255, 0)是绿色、(255, 0, 0)是蓝色。
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第33张图片

10.展示识别出人脸的图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第34张图片

11.将识别人脸后的图片保存成2.jpg文件
在这里插入图片描述

12.等待窗口展示10秒
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第35张图片

13.销毁所有的窗口,避免占用内存
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第36张图片

14.运行展示
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第37张图片
完整代码展示

import cv2  # 导入opencv-python库即cv2库

path = "3.jpg"  # 写入图片的路径并赋予变量path
cascPath = "haarcascade_frontalface_default.xml"  # 写入类型器的路径并赋予变量cascPath
image = cv2.imread(path)  # 读取图片的路径
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  # 把图片转为灰色以便进行人脸识别处理
# scaleFactor 图像长宽同时按照一定比例(默认1.1)逐步缩小,然后检测,参数设置的越大,计算速度越快
# minNeighbors 模糊度参数,设置越小越容易识别,越大越不容易识别
# minSize是最小的长和宽像素
faces = cv2.CascadeClassifier(cascPath).detectMultiScale(
    gray,
    scaleFactor=1.1,
    minNeighbors=5,
    minSize=(30, 30),
)
print("Found {0} faces!".format(len(faces)))
# 通过cv2.CascadeClassifier(cascPath).detectMultiScale函数进行人脸识别处理,并且输出该图片有几张人脸
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x + w, y + h), (0, 0, 255), 2)  # (0, 0, 255)红色、(0, 255, 0)绿色、(255, 0, 0)蓝色
# 在原图的人脸上画出识别的矩形区域
cv2.imshow("facesFound", image)  # 展示识别出人脸的图片
cv2.imwrite("2.jpg", image)  # 将识别人脸后的图片写入该路径的2.jpg文件
cv2.waitKey(10000)  # 等待窗口展示,防止一闪而过
cv2.destroyWindow("facesFound")  # 销毁创造的facesFound窗口

人脸视频检测
1.重新创建一个项目,从File->New Project
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第38张图片

2.项目名字可以自己取,这里我默认
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第39张图片

3.开始创建的时候这里我们选择This Window,This Window和New Window的区别就是This Window覆盖原先的窗口、New Window是新打开一个窗口。
在这里插入图片描述

4.打开项目后右键点击pythonProjec1,新建一个videoProcessing.py文件
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第40张图片

5.导入cv2库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第41张图片

6.找到1.mp4素材,复制在项目中
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第42张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第43张图片

7.写入视频的路径并赋予变量cap
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第44张图片

8.找到人脸识别的类型器,将类型器复制到项目中,写入类型器的路径并赋予变量cascPath
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第45张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第46张图片

9.写一个视频播放的循环while函数,cap.isOpened()函数是判断该视频是否正确播放
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第47张图片

10.读取视频,第一个参数ret 为True 或者False,代表有没有读取到图片,第二个参数frame表示读取到每一帧的图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第48张图片

11.判断图片是否正常读取
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第49张图片

12.将图片从rgb格式转成gray灰色格式
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第50张图片

13.通过cv2.CascadeClassifier(cascPath).detectMultiScale函数进行人脸识别处理,并且输出该图片有几张人脸。参数scaleFactor是图像长宽同时按照一定比例(默认1.1)逐步缩小,然后检测,参数设置的越大,计算速度越快,参数minNeighbors 是模糊度参数,设置越小越容易识别,越大越不容易识别,参数minSize是最小的长和宽像素。

小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第51张图片

14.在视频的每一帧上画矩形
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第52张图片

15.创建一个叫facesFound的窗口,播放处理后的视频
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第53张图片

16.视频正常播放时等待,当按“q”键时停止运行
在这里插入图片描述

17.如果读取的视频帧不正常将会自动停止运行,不会报错
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第54张图片

18.运行完成,将所有的视频释放,并且销毁所有的窗口
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第55张图片

19.运行结果
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第56张图片
完整代码展示

import cv2#导入opencv-python库即cv2库
# cap = cv2.VideoCapture(0)#打开内置摄像头
cap=cv2.VideoCapture("1.mp4")#写入视频的路径并赋予变量cap
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")#写入类型器的路径并给cv2.CascadeClassifier函数进行处理
while(cap.isOpened()):#cap.isOpened()函数是判断该视频是否正确播放
    ret, frame = cap.read()#读取视频,第一个参数ret 为True 或者False,代表有没有读取到图片,第二个参数frame表示截取到一帧的图片
    if ret==True:
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        # scaleFactor 图像长宽同时按照一定比例(默认1.1)逐步缩小,然后检测,参数设置的越大,计算速度越快
        # minNeighbors 模糊度参数,设置越小越容易识别,越大越不容易识别
        # minSize是最小的长和宽像素
        faces = faceCascade.detectMultiScale(
            gray,
            scaleFactor=1.1,
            minNeighbors=5,
            minSize=(30, 30),
        )
        print("Found {0} faces!".format(len(faces)))
        # 通过cv2.CascadeClassifier(cascPath).detectMultiScale函数进行人脸识别处理,并且输出每帧图片有几张人脸
        for (x, y, w, h) in faces:
            cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
        # 在原图的人脸上画出识别的矩形区域
        cv2.imshow('facesFound', frame)#创造一个facesFound窗口来展示每一帧的图片,使其类似以视频方式播放
        if cv2.waitKey(1) & 0xFF == ord('q'):#类似中断播放的按键,按q跳出循环终止播放
            break
    else:
        break#如果视频结束正常跳出循环终止播放
cap.release()#释放视频
cv2.destroyAllWindows()#将创建的所有的窗口毁灭

车牌识别素材网盘获取
链接:https://pan.baidu.com/s/1p82yY7X_c2tHWD9A37kk6g
提取码:p7zf

车牌图片识别
1.重新创建一个项目,从File->New Project
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第57张图片

2.项目名字可以自己取,这里我默认
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第58张图片

3.开始创建的时候这里我们选择This Window,This Window和New Window的区别就是This Window覆盖原先的窗口、New Window是新打开一个窗口。
在这里插入图片描述

4.打开项目后右键点击pythonProjec2,新建一个licenseImage.py文件
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第59张图片

5.使用命令pip install hyperlpr下载识别车牌号码的python库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第60张图片

6.继续使用命令pip install opencv-python==3.4.8.29下载版本为3.4.8.29的opencv库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第61张图片

7.继续使用命令pip install pillow下载该python库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第62张图片

8.下载好这两个库后导入这四个库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第63张图片

9.定义一个函数cv2AddChineseText,这个函数的目的是在图像上写出中文字符,该函数内的参数分别是图像、文本内容、像素位置,文本颜色,文本大小
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第64张图片

10.找到素材图片并且复制到项目中,然后读取图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第65张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第66张图片

11.读取图片内车牌的识别度和车牌的号码以及车牌的位置
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第67张图片

12.做一个判断,如果存在车牌信息的话就进行下一步操作
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第68张图片

13.将车牌的识别度和车牌的号码以及车牌的位置分开
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第69张图片

14.在车牌位置中循环
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第70张图片

15.在车牌位置画矩形
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第71张图片

16.调用定义的函数来在图片上车牌号写进图片中
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第72张图片

17.将图片中的识别度写进图片中,各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细,cv2.FONT_HERSHEY_SIMPLEX:标准大小无衬线字体
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第73张图片

18.将图片展现出来,并且等待十秒
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第74张图片
19.运行展现
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第75张图片
完整代码展示

from hyperlpr import *#导入hyperlpr库,处理车牌识别
import cv2#导入CV2库,处理图片或视频,版本号为3.4.8.29
import numpy as np
from PIL import ImageFont, ImageDraw,Image

def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30):
    if (isinstance(img, np.ndarray)):  # 判断是否OpenCV图片类型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(img)  # 创建一个可以在给定图像上绘图的对象
    fontStyle = ImageFont.truetype("simsun.ttc", textSize, encoding="utf-8")  # 字体的格式
    draw.text(position, text, textColor, font=fontStyle)  # 绘制文本
    return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)  # 转换回OpenCV格式

frame=cv2.imread("5.png")#读取图片
k=HyperLPR_plate_recognition(frame)#使用HyperLPR_plate_recognition函数识别图片内车牌号
print(k)
if k:
    d = []
    a = k[0][0]
    b = k[0][1]
    c = k[0][2]
    b = str(b)
    d.append(c)
    for (x, y, w, h) in d:
        cv2.rectangle(frame, (x, y), (w, h), (0, 0, 255), 2)
        frame = cv2AddChineseText(frame, a, (x, y), (255, 0, 0), 30)
        cv2.putText(frame, b, (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)#各参数依次是:图片,添加的文字,左上角坐标,字体,字体大小,颜色,字体粗细,cv2.FONT_HERSHEY_SIMPLEX:标准大小无衬线字体
cv2.imshow('frame', frame)
cv2.waitKey(10000)#等待窗口展示

车辆视频识别
1.重新创建一个项目,从File->New Project
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第76张图片

2.项目名字可以自己取,这里我默认
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第77张图片

3.开始创建的时候这里我们选择This Window,This Window和New Window的区别就是This Window覆盖原先的窗口、New Window是新打开一个窗口。
在这里插入图片描述

4.打开项目后右键点击pythonProjec3,新建一个licenseVideo.py文件
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第78张图片

5.使用命令pip install hyperlpr下载识别车牌号码的python库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第79张图片

6.继续使用命令pip install opencv-python==3.4.8.29下载版本为3.4.8.29的opencv库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第80张图片

7.继续使用命令pip install pillow下载该python库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第81张图片

8.下载好这两个库后导入这四个库
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第82张图片

9.定义一个函数cv2AddChineseText,这个函数的目的是在图像上写出中文字符,该函数内的参数分别是图像、文本内容、像素位置,文本颜色,文本大小
在这里插入图片描述

10.找到素材视频并且复制到项目中,然后读取视频
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第83张图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第84张图片

11.写一个while循环,看看能否正常读取图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第85张图片

12.读取视频,第一个参数ret 为True 或者False,代表有没有读取到图片,第二个参数frame表示截取到一帧的图片
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第86张图片

13.判断视频有没有正常读取
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第87张图片

14.操作跟图片识别一样
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第88张图片

15.在每一帧图片中都进行画图操作,操作情况跟图片识别一样
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第89张图片

16.展现每一帧图片以及增加一个中断操作
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第90张图片

17.如果视频结束则跳出循环
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第91张图片

18.释放视频以及销毁窗口操作
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第92张图片

19.运行展现
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第93张图片
完整代码展示

import hyperlpr  # 导入hyperlpr库,处理车牌识别
import cv2  # 导入CV2库,处理图片或视频,版本号为3.4.8.29
import numpy as np
from PIL import ImageFont, ImageDraw, Image



def cv2AddChineseText(img, text, position, textColor=(0, 255, 0), textSize=30):
    if (isinstance(img, np.ndarray)):  # 判断是否OpenCV图片类型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(img)  # 创建一个可以在给定图像上绘图的对象
    fontStyle = ImageFont.truetype("simsun.ttc", textSize, encoding="utf-8")  # 字体的格式
    draw.text(position, text, textColor, font=fontStyle)  # 绘制文本
    return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)  # 转换回OpenCV格式



mp4 = cv2.VideoCapture("2.mp4")  # 读出视频的路径
while (mp4.isOpened()):  # 使用mp4.isOpened()函数来判断视频是否正常打开
    ret, frame = mp4.read()  # 读取视频,第一个参数ret 为True 或者False,代表有没有读取到图片,第二个参数frame表示截取到一帧的图片
    if ret == True:  # 判断视频有没有结束
        k = hyperlpr.HyperLPR_plate_recognition(frame)  # 使用HyperLPR_plate_recognition函数识别图片内车牌号
        if k:
            d = []
            a = k[0][0]
            b = k[0][1]
            c = k[0][2]
            b = str(b)
            d.append(c)
            print(a)
            for (x, y, w, h) in d:
                cv2.rectangle(frame, (x, y), (w, h), (0, 0, 255), 2)
                frame = cv2AddChineseText(frame, a, (x, y), (255, 0, 0), 30)
                cv2.putText(frame, b, (x, y), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
        cv2.imshow('frame', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):  # 类似中断播放的按键,按q跳出循环终止播放
            break
    else:  # 如果视频结束正常跳出循环终止播放
        break
mp4.release()  # 释放视频
cv2.destroyAllWindows()  # 将创建的所有的窗口销毁


到此结束,运行成功的小伙伴们拜托一键三连!!!
小白都能学会的python+opencv,带你从人脸识别做到车牌识别,成为别人口中赞叹的高手!_第94张图片

你可能感兴趣的:(笔记,python,opencv)