Python图像处理(车牌识别)简单
利用python进行车牌识别
图像读取
图像增强
车牌位置识别
排除无用信息
文字提取
文本提取没有进行cnn学习,识别度不高,要求车牌方向不太歪,字迹清晰
相关说明:
- 利用pip install 导入相关库:例如win+r—cmd—pip install numpy
- 利用python的pytesseract库以及tesseract下载链接识别文本(tesseract需要配置环境变量)
完整代码如下
import cv2
import imutils
import numpy as np
import pytesseractpytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
#获取图像
imgFile = 'D://Users/Lenovo/Desktop/trail picture/7.jpg'
img = cv2.imread(imgFile, cv2.IMREAD_COLOR)
img = cv2.resize(img, (620, 480))
#卷积模板
kernel_sharpen_2 = np.array([[1,1,1],[1,-7,1],[1,1,1]])
#卷积
output_2 = cv2.filter2D(img,-1,kernel_sharpen_2)
#显示锐化效果cv2.imshow('sharpen_2 Image',output_2)#停顿
if cv2.waitKey(0) & 0xFF == 27:cv2.destroyAllWindows()#灰度化
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#滤波
gray = cv2.bilateralFilter(gray, 13, 15, 15)
#边缘检测
edged = cv2.Canny(gray, 30, 200)
cv2.imshow('car',edged)
if cv2.waitKey(0) & 0xFF == 27:cv2.destroyAllWindows()#找轮廓
contours = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)contours = imutils.grab_contours(contours)contours = sorted(contours, key=cv2.contourArea, reverse=True)[:50]
screenCnt = None
#print(contours)#cv2.drawContours(img, contours,-1, (0, 0, 255), 3)#识别车牌
for c in contours:peri = cv2.arcLength(c, True)approx = cv2.approxPolyDP(c, 0.015 * peri, True)#print(approx)#print(len(approx))if len(approx) == 4:screenCnt = approxbreak#画框
if screenCnt is None:detected = 0print("No contour detected")
else:detected = 1if detected == 1:cv2.drawContours(img, [screenCnt], -1, (0, 0, 255), 3)
#print(screenCnt)
#cv2.imshow('car',img)
#cv2.waitKey(0)#去除无用信息
mask = np.zeros(gray.shape, np.uint8)
new_image = cv2.drawContours(mask, [screenCnt], 0, 255, -1, )
new_image = cv2.bitwise_and(img, img, mask=mask)#cv2.imshow('car',new_image)
#cv2.waitKey(0)#分割出来
(x, y) = np.where(mask == 255)
(topx, topy) = (np.min(x), np.min(y))
(bottomx, bottomy) = (np.max(x), np.max(y))
Cropped = gray[topx:bottomx + 1, topy:bottomy + 1]cv2.imshow('car',Cropped)
if cv2.waitKey(0) & 0xFF == 27:cv2.destroyAllWindows()text = pytesseract.image_to_string(Cropped ,config='--psm 11')
print("programming_fever's License Plate Recognition\n")
print("Detected license plate Number is:", text)
img = cv2.resize(img, (500, 300))
Cropped = cv2.resize(Cropped, (400, 200))
cv2.imshow('car', img)
cv2.imshow('Cropped', Cropped)if cv2.waitKey(0) & 0xFF == 27:cv2.destroyAllWindows()
有时间会对代码进行优化以及添加相关函数的用法
Python图像处理(车牌识别)简单相关推荐
- python 图像处理与识别书籍_Python图像处理之识别图像中的文字(实例讲解)
①安装PIL:pip install Pillow(之前的博客中有写过) ②安装pytesser3:pip install pytesser3 ③安装pytesseract:pip install p ...
- 数字图像处理——车牌识别(matlab)
本次大报告利用MATLAB函数功能,设计和实现了一个车牌识别系统.车牌识别系统的基本原理为:将手机拍摄到的包含车辆牌照的图像输入到计算机中进行预处理,再对牌照进行搜索.检测.定位,并分割出包含牌照字符 ...
- QT+Python停车场车牌识别计费管理系统
程序示例精选 Python停车场车牌识别计费管理系统 如需安装运行环境或远程调试,见文章底部微信名片! 前言 QT+Python是非常经典的窗体编程组合,功能完善,可视化界面美观易维护,这篇博客针对停 ...
- python 车牌识别简单_智能车牌识别 停车如此简单
随着人们经济.生活水平的提高,我国民用汽车保有量不断攀升,产生了巨量的停车需求,而在国家"新基建"的政策推动以及市场需求的驱动下,停车产业将迎来更广阔的发展空间,智慧停车解决方案的 ...
- python 车牌识别简单_ZKTeco 智能车牌识别 停车如此简单
随着人们经济.生活水平的提高,我国民用汽车保有量不断攀升,产生了巨量的停车需求,而在国家"新基建"的政策推动以及市场需求的驱动下,停车产业将迎来更广阔的发展空间,智慧停车解决方案的 ...
- 基于Python的车牌识别系统的实现
目录 第1章 绪论 1 1.1研究背景与意义 1 1.2课题研究现状 1 1.3研究目标 1 1.4研究内容与论文组织结构 1 第2章 相关理论与关键技术 3 2.1计算机视觉概述 3 2.2 Ope ...
- 基于LabVIEW+python实现车牌识别智能系统的设计
一.系统应用介绍 二.主要实现技术原理 2.1车辆检测 2.2车牌定位 2.3车牌进行字符分割 2.4牌照字符识别方法 三.技术实现 四.开发环境 4.1LabVIEW介绍及数据采集卡 4.2pyth ...
- 卷积神经网络算法python实现车牌识别_车牌识别算法之CNN卷积神经网络
原标题:车牌识别算法之CNN卷积神经网络 随着我国经济的发展,汽车,特别是小轿车的数量越来越多,智能交通管理系统应运而生.车牌智能自动识别作为智能交通管理系统中的重要组成部分,在智能交通管理中发挥着越 ...
- python机器视觉车牌识别_机器视觉车牌识别
机器视觉车牌识别 --车牌号识别系统研究课题 2018年7月10日,许昌学院信息工程(软件职业技术)学院"创出彩"机器视觉智能检测实践队第10天研究正式开展,由于老师有别的事情要忙 ...
- MATLAB--数字图像处理 车牌识别之简易识别程序
车牌识别之简易识别程序 代码 I=imread('car2.jpg'); figure(1),imshow(I);title('原图') I1=rgb2gray(I);%功能是将真彩色图像转换为灰度图 ...
最新文章
- 实现一个网易云音乐的 BottomSheetDialog
- FPGA 和ASIC开发的区别
- android组件权限,Android中Permission权限机制的具体使用
- [Java多线程]-J.U.C.atomic包下的AtomicInteger,AtomicLong等类的源码解析
- java request payload_java 模拟 post request payload
- 转: MySQL 赋予用户权限(grant %-远程和localhost-本地区别)
- Flash 杂志《summer tree》 第六期发布
- CUDA out of memory. Tried to allocate 14763.13 GiB (GPU 3; 10.73 GiB total capacity; 165.28 MiB alre
- Maven——profile介绍
- 移动端实现蓝牙打印机打印_MBrush世界上最小的移动彩色打印机
- mysql myflash原理_如何利用 Myflash 解析 binlog ?
- L2TP连接result_code_avp: avp is incorrect size. 错误
- 在线算法交互、可视化与演示及应用(caffe 网络配置文件 .prototxt 的可视化)
- linux cpufreq 设置
- Leetcode-数据结构-1.两数之和
- Shrinkage Loss
- 配置rtools 4.0 https://cran.r-project.org/bin/windows/Rtools/
- MATLAB-非线性方程(组)求解
- Android应用发送短信的实现
- MODBUS功能码解释