利用opencv实现车牌的字符分割

原图

运行结果如下

灰度化

反色

二值处理

水平投影

垂直投影

字符分割

实现代码

import cv2

import numpy as np

img=cv2.imread('E:\\123456.jpg')

cv2.imshow('image1',img)

#将图像转为灰度图

img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

cv2.imshow('image2',img)

#反色

def inverse_color(edged):

height,width = edged.shape

img2 = edged.copy()

for i in range(height):

for j in range(width):

img2[i,j] = (255-edged[i,j])

return img2

cv2.imshow('image3',inverse_color(img))

#水平投影

ret,thresh1=cv2.threshold(inverse_color(img),130,255,cv2.THRESH_BINARY)

cv2.imshow('image4',thresh1)

image=thresh1.copy()

(h,w)=thresh1.shape #返回高和宽

#初始化一个跟图像高一样长度的数组,用于记录每一行的黑点个数

a = [0 for z in range(0, h)]

for j in range(0,h): #遍历每一行

for i in range(0,w): #遍历每一列

if thresh1[j,i]==0: #判断该点是否为黑点,0代表黑点

a[j]+=1 #该行的计数器加一

thresh1[j,i]=255#将其改为白点,即等于255

for j in range(0,h): #遍历每一行

for i in range(0,a[j]): #从该行应该变黑的最左边的点开始向最右边的点设置黑点

thresh1[j,i]=0 #设置黑点

cv2.imshow('image5',thresh1)

#垂直投影

ret,thresh1=cv2.threshold(inverse_color(img),130,255,cv2.THRESH_BINARY)

(h,w)=thresh1.shape #返回高和宽

#初始化一个跟图像宽一样长度的数组,用于记录每一列的黑点个数

a = [0 for z in range(0, w)]

for j in range(0,w): #遍历每一列

for i in range(0,h): #遍历每一行

if thresh1[i,j]==0: #判断该点是否为黑点,0代表是黑点

a[j]+=1 #该列的计数器加1

thresh1[i,j]=255#记录完后将其变为白色,即等于255

for j in range(0,w): #遍历每一列

for i in range(h-a[j],h):#从该列应该变黑的最顶部的开始向最底部设为黑点

#for i in range(0,a[i]):

thresh1[i,j]=0 #设为黑点

cv2.imshow('image6',thresh1)

#矩形分割字符

image = cv2.cvtColor(image,cv2.COLOR_GRAY2RGB)

red = (0,0,255)

#设置矩形的各参数

cv2.rectangle(image, (10,10), (65,120),red,2)

cv2.rectangle(image, (75,10), (135,120),red,2)

cv2.rectangle(image, (160,10), (220,120),red,2)

cv2.rectangle(image, (225,10), (290,120),red,2)

cv2.rectangle(image, (300,10), (355,120),red,2)

cv2.rectangle(image, (360,10), (415,120),red,2)

cv2.rectangle(image, (420,10), (480,120),red,2)

cv2.imshow('image7',image)

cv2.waitKey(0)

遇到的问题

在图片分割时,图像框是黑色,无法变成彩色

解决方法:

这是因为原本的图片进行了灰度转换,而在灰度图上绘制彩色标识,只会出现黑色或者白色,所以我将灰度图转换成了彩色图

就会出现彩色矩形了

车牌分割python_OpencvPython实现车牌字符分割相关推荐

  1. 车牌识别之二:字符分割

    车牌识别大概步骤可分为:车牌定位,字符分割,字符识别三个步骤. 细分点可以有以下几个步骤: (1)将图片灰度化与二值化 (2)去噪,然后切割成一个一个的字符 (3)提取每一个字符的特征,生成特征矢量或 ...

  2. 【数字图像处理】【Matlab】【汽车车牌识别】3-车牌字符分割

    author:zox 实验环境:Matlab2019a 课程设计:汽车车牌识别 序号 内容 0 [任务+原理+设计方案] 1 车牌图像预处理 2 车牌定位 3 车牌字符分割 4+5 车牌字符识别+结果 ...

  3. opencv 车牌字符分割 ANN网络识别字符

    opencv 车牌字符分割 ANN网络识别字符   原文参考:https://www.cnblogs.com/chenzhefan/p/7629441.html 最近在复习OPENCV的知识,学习ca ...

  4. 汽车车牌识别系统实现(三)-- 车牌矫正+字符分割+代码实现

    车牌矫正 一.前言 汽车车牌识别设备往往都是固定于红绿灯的支架或者是小区.学校入口的一侧来采集获取车牌图像,由于采集图像设备的安装位置不固定以及不同车辆车牌悬挂的高度也不确定等因素,这些外部因素都有可 ...

  5. 车牌识别关键技术-车牌定位

    博主渣渣本科一枚,毕业设计选了一个基于OpenCV的车牌识别的题目,在此记下其中用到的一些关键技术备忘,也希望可以给后来人些许启发. 车牌识别的第一步自然是想办法把车牌从一张图片中提取出来,也就是所谓 ...

  6. 基于连通域字符分割的流程_基于改进连通域算法的车牌字符分割方法

    基于改进连通域算法的车牌字符分割方法 朱亚萍,邱锦山,杨成忠 [摘 要] 摘要:为了解决车牌字符分割中不连通汉字分割.粘连字符分割以及 竖直边框干扰等问题,提出了一种基于改进连通域算法的车牌字符分割方 ...

  7. python 视觉技术_python+opencv实现机器视觉基础技术(边缘提取,图像滤波,边缘检测算子,投影,车牌字符分割)...

    机器视觉是人工智能正在快速发展的一个分支.简单说来,机器视觉就是用机器代替人眼来做测量和判断.它是一项综合技术,包括图像处理.机械工程技术.控制.电光源照明.光学成像.传感器.模拟与数字视频技术.计算 ...

  8. 【Python4】字符分割识别,车牌识别矫正,移动物检测,Caffe_SSD三字码识别,ckpt文件转pb文件,人脸检测与识别

    文章目录 1.字符分割识别 2.车牌识别矫正 2.1 车牌识别项目安装 2.2 车牌矫正的方法 3.移动物检测 3.1 帧间差分法 3.2 相机捕捉照片 3.3 MindVision品牌的相机 3.4 ...

  9. python编程胡牌将是什么意思_OpenCV+Python识别车牌和字符分割的实现

    本篇文章主要基于python语言和OpenCV库(cv2)进行车牌区域识别和字符分割,开篇之前针对在python中安装opencv的环境这里不做介绍,可以自行安装配置! 车牌号检测需要大致分为四个部分 ...

最新文章

  1. php概率函数,PHP全概率运算函数(优化版) Webgame开发必备
  2. 室内使用酒精消毒的时候一定要注意开窗!!!
  3. c语言中合法转义字符,判断c语言合法转义字符
  4. 前端学习 -- Css -- 内联元素的盒模型
  5. 从中师到博士,我的22年...
  6. 《信息安全系统设计基础》实验一 开发环境的熟悉
  7. python修改python unittest的运行顺序
  8. meteor 结合mysql_Meteor: 关于Template实例(instance)和数据(data)
  9. SQL必知必会第五版笔记
  10. 编写一个简单的JavaScript模板引擎
  11. 写给人类的机器学习 一、为什么机器学习重要
  12. English语法_指示代词 -such / the same
  13. 基于Web服务的物联网-WoT(Web of Things)
  14. 二本考中南计算机学硕,二本考上中南财经政法大学经济法学硕的经验
  15. 女朋友发的微信消息撤回了,python一串代码,让你大呼过瘾
  16. 国密SSL证书保障网站安全
  17. 重力感应G-Sensor 方向介绍
  18. cdi name 日志_DI / CDI –基础
  19. C++飞机大战(注释较多,新手可读懂,附全代码)
  20. 04.HC_SR04超声波测距

热门文章

  1. Kali Linux 的常用命令
  2. 移动硬盘在Mac和Windows上通用的问题
  3. 2021湖南高考成绩分段查询,湖南2021年高考成绩最新公布时间
  4. Paillier算法详解及Java实现
  5. 计算机控制 电机调速实验,ACT-DT3直流电机转速控制实验指导书
  6. 双减之下,在线教育的量骤减,分享一下12种WebRTC有趣的用法
  7. Js WebSocket简单抽象类实现
  8. 优秀网页翻译:高精度 10MHz GPS 驯服钟 (GPSDO) - Part 2
  9. 东软JavaWeb实训记-DAY8-小组项目开发实践(文件上传下载等操作)
  10. SQL 时间范围和时间粒度