车牌识别的matlab程序(程序讲解模板)

clc clear close all I=imread( chepai.jpg ); subplot(3,2,1);imshow(I), title( 原始图像 ); I_gray=rgb2gray(I); subplot(3,2,2),imshow(I_gray),title( 灰度图像 ); %====================== 形态学预处理 ====================== I_edge=edge(I_gray, sobel ); subplot(3,2,3),imshow(I_edge),title( 边缘检测后图像 ); se=[1;1;1]; I_erode=imerode(I_edge,se); subplot(3,2,4),imshow(I_erode),title( 腐蚀后边缘图像 ); se=strel( rectangle ,[25,25]); I_close=imclose(I_erode,se); %图像闭合、填充图像 subplot(3,2,5),imshow(I_close),title( 填充后图像 ); I_final=bwareaopen(I_close,2000); %去除聚团灰度值小于2000的部分 subplot(3,2,6),imshow(I_final),title( 形态滤波后图像 ); %========================== 车牌分割 ============================= I_new=zeros(size(I_final,1),size(I_final,2)); location_of_1=[]; for i=1:size(I_final,1) %寻找二值图像中白的点的位置 for j=1:size(I_final,2) if I_final(i,j)==1; newlocation=[i,j]; location_of_1=[location_of_1;newlocation]; end end end mini=inf;maxi=0; for i=1:size(location_of_1,1) %寻找所有白点中,x坐标与y坐标的和最大,最小的两个点的位置 temp=location_of_1(i,1)+location_of_1(i,2); if tempmaxi maxi=temp; b=i; end end first_point=location_of_1(a,:); %和最小的点为车牌的左上角 last_point=location_of_1(b,:); %和最大的点为车牌的右下角 x1=first_point(1)+4; %坐标值修正 x2=last_point(1)-4; y1=first_point(2)+4; y2=last_point(2)-4; I_plate=I(x1:x2,y1:y2); I_plate=OTSU(I_plate); %以OTSU算法对分割出的车牌进行自适应二值化处理 I_plate=bwareaopen(I_plate,50); figure,imshow(I_plate),title( 车牌提取 ) %画出最终车牌 %========================= 字符分割 ============================ X=[]; %用来存放水平分割线的横坐标 flag=0; for j=1:size(I_plate,2) sum_y=sum(I_plate(:,j)); if logical(sum_y)~=flag %列和有变化时,记录下此列 X=[X j]; flag=logical(sum_y); end end figure for n=1:7 char=I_plate(:,X(2*n-1):X(2*n)-1); %进行粗分割 for i=1:size(char,1) %这两个for循环对分割字符的上下进行裁剪 if sum(char(i,:))~=0 top=i; break end end for i=1:size(char,1) if sum(char(size(char,1)-i,:))~=0 bottom=size(char,1)-i; break end end char=char(top:bottom,:); subplot(2,4,n);imshow(char); char=imresize(char,[32,16], nearest ); %归一化为32*16的大小,以便模板匹配 (strcat( Char_ ,num2str(n), =char; )); %将分割的字符放入Char_i中 end %========================== 字符识别 ============================= char=[]; store1=strcat( 京 , 津 , 沪 , 渝 , 冀 , 晋 , 辽 , 吉 , 黑 , 苏 , 浙 . %汉字识别 , 皖 , 闽 , 赣 , 鲁 , 豫 , 鄂 , 湘 , 粤 , 琼 , 川 , 贵 , 云 , 陕 . , 甘 , 青 , 藏 , 桂 , 皖 , 新 , 宁 , 港 , 鲁 , 蒙 ); for j=1:34 Im=Char_1; Template=imread(strcat( chinese\ ,num2str(j), .bmp )); %chinese文件附在最后 Template=im2bw(Template); Differ=Im-Template; Compare(j)

车牌识别的matlab程序(程序_讲解_模板),车牌识别的matlab程序(程序讲解模板)相关推荐

  1. 程序阅读_全面详解LTE:MATLAB建模仿真与实现_自学笔记(1)调制与编码_程序阅读

    程序阅读_全面详解LTE:MATLAB建模仿真与实现_自学笔记(1)调制与编码_程序阅读 在粗浅地掌握了LTE知识后,从今天开始对<全面详解LTE:MATLAB建模仿真与实现>一书的学习. ...

  2. 动态矩阵控制matlab程序_【实时关注】你了解MATLAB吗?

    你了解MATLAB吗? MATLAB(矩阵实验室),全称为matrix laboratory.是由美国mathworks公司发布的主要面对科学计算.可视化以及交互式程序设计的高科技计算环境. 20世纪 ...

  3. java程序退出自动保存_你知道如何自动保存 Spring Boot 应用进程号吗

    1. 前言 欢迎阅读 Spring Boot 2 实战 系列文章. PID 对于系统运维来说并不陌生,但是对于一些开发者特别是新手还是要简单介绍一下的.它是 Process ID 的简称,是系统分配给 ...

  4. 微信小程序的开发制作_搭建_工具_模板_一键生成

    微信小程序上线了,小编会给您讲解关于它的所有解答 2017年1月9日小程序正式上线,很多人都知道微信小程序,但是不知道微信真正的是什么,要怎么去做,今天金子小编来为大家讲解微信小程序到底是什么. 微信 ...

  5. 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程

    一.前言   我最近在做一个基于图像融合的目标检测工程,我经常用matlab去研究和创新新型的图像融合算法,因为matlab有着python所不可比拟的数据可视化功能和大量的滤波分解框架包:在目标检测 ...

  6. 程序员期末试卷_第三部分复习提纲.doc下载

    程序员期末试卷_第三部分复习提纲.doc下载 转载于:https://www.cnblogs.com/dtdnh520/archive/2007/01/20/625390.html

  7. java语言仅支持单重继承_java语言程序设计基础篇习题_复习题_第十一章

    java语言程序设计基础篇习题_复习题_第十一章 11.1 下面说法是真是假?一个子类是父类的子集. 11.2 使用什么关键字来定义一个子类 11.3 什么是单一继承?什么是多重继承?java支持多重 ...

  8. matlab风力机叶片仿真教程,我用matlab编写了一个风力机叶片的优化设计程序,有点问题 - 程序语言 - 小木虫 - 学术 科研 互动社区...

    主程序 clear; global r; global R; global phi; global lamb; V1=7;P=400;lamb0=6;B=3; D=2.5; R=D/2; N=60*l ...

  9. 程序员绩效总结_闲聊程序员的绩效考核

    前言 无规矩不成方圆.-- <孟子·离娄上> 作为程序员的我,以前这个从来没有聊了解过程序员考核,我以前待过的公司,程序员岗位从来没有进行过考核.可能是非专业的互联网公司,也可能是领导不懂 ...

  10. java程序的最小程序单位_微信小程序中rpx与rem单位使用

    原作者: 小小小 来自: 授权地址 本文讲解rpx和rem应用于微信小程序,如果你还没有入门,建议先从下面看起: 如果看完上面几篇文章,我们开始进入正题吧~~ 一.rem的使用 1) js中导入下面这 ...

最新文章

  1. Python Numpy 矩阵级基本操作(2)
  2. 这6个动作,据说只有20%的人能做到!| 今日最佳
  3. vs entityframwork Validation failed for one or more entities
  4. 前端学习(2686):重读vue电商网站7之登录预校验
  5. 2021年国货彩妆品牌推广营销趋势
  6. 解决QTcpSocket类中readAll()函数调用失败问题
  7. centos 关机命令_Linux anacron命令用法详解
  8. java中接口有什么作用?请创建一个接口(举例)
  9. java caffe 验证码,监控Caffe的培训/验证过程
  10. WPF ImageButton
  11. 自学电脑办公自动化能不能考证
  12. extjs的EditorGridPanel中的ComboBox列中显示值的问题
  13. 后台管理系统架构成型
  14. checkIP——烂代码又堆了一个ip活性检测工具
  15. z11 max android 6.0,努比亚Z11Max 安卓6.0 魅族Flyme6刷机包 最新6.7.12.29R紫火版 20180108更新...
  16. win10怎么更新显卡驱动_荒野大镖客2优化:NVIDIA更新GeForce 441.41显卡驱动
  17. 去掉wap端手机浏览器头部搜索栏和底部工具栏的方法
  18. MM们必败潮物。。。。大眼睛的小秘密哦```````
  19. 现阶段云计算的市场运用
  20. [HDU5604]守鹤之砂

热门文章

  1. PHP 利用cron 实现文章同步至新浪、网易等微博
  2. raid0 raid1 raid5 raid10工作模式的工作原理及特点
  3. Docker部署Angular应用
  4. treeview节点的复制 c# 1614606987
  5. 组合框绑定字符串数组的数据 c# 1614236088
  6. command对象的三个主要方法 1120
  7. javascript 西瓜一期 14 回顾 字符与编码 进制转换 数据保存
  8. flask-配置的设置-三种配置的实现方法
  9. redis-数据类型一览
  10. django-模型类管理器