matlab车牌识别图像调整程序,matlab完整车牌识别程序,包括报告及图像
大侠,我下载了你程序,然后根据自己的想法修改了图像的预处理部分代码,为何运行到下面
sbw1=bw2(startrow:startrow+hight,startcol:startcol+width-1); %获取车牌二值子图
subcol1=Sgray(startrow:startrow+hight,startcol:startcol+width-1);%获取车牌灰度子图
这一步的时候系统提示:
??? Undefined function or variable "startrow".
Error in ==> dingweizijia at 51
sbw1=w(startrow:startrow+hight,startcol:startcol+width-1); %获取车牌二值子图
这是楼主的源代码:
clear ;
close all;
%Step1 获取图像 装入待处理彩色图像并显示原始图像
Scolor = imread('H:\迅雷下载\车牌识别下载\车牌识别 研究版\新建文件夹\work\3.jpg');%imread函数读取图像文件
%将彩色图像转换为黑白并显示
Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图
figure,imshow(Scolor),title('原始彩色图像');%figure命令同时显示两幅图像
figure,imshow(Sgray),title('原始黑白图像');
%Step2 图像预处理 对Sgray 原始黑白图像进行开操作得到图像背景
s=strel('disk',13);%strel函数
Bgray=imopen(Sgray,s);%打开sgray s图像
figure,imshow(Bgray);title('背景图像');%输出背景图像
%用原始图像与背景图像作减法,增强图像
Egray=imsubtract(Sgray,Bgray);%两幅图相减
figure,imshow(Egray);title('增强黑白图像');%输出黑白图像
%Step3 取得最佳阈值,将图像二值化
fmax1=double(max(max(Egray)));%egray的最大值并输出双精度型
fmin1=double(min(min(Egray)));%egray的最小值并输出双精度型
level=(fmax1-(fmax1-fmin1)/3)/255;%获得最佳阈值
bw22=im2bw(Egray,level);%转换图像为二进制图像
bw2=double(bw22);
%Step4 对得到二值图像作开闭操作进行滤波
figure,imshow(bw2);title('图像二值化');%得到二值图像
grd=edge(bw2,'canny')%用canny算子识别强度图像中的边界
figure,imshow(grd);title('图像边缘提取');%输出图像边缘
bg1=imclose(grd,strel('rectangle',[5,19]));%取矩形框的闭运算
figure,imshow(bg1);title('图像闭运算[5,19]');%输出闭运算的图像
bg3=imopen(bg1,strel('rectangle',[5,19]));%取矩形框的开运算
figure,imshow(bg3);title('图像开运算[5,19]');%输出开运算的图像
bg2=imopen(bg3,strel('rectangle',[19,1]));%取矩形框的开运算
figure,imshow(bg2);title('图像开运算[19,1]');%输出开运算的图像
%Step5 对二值图像进行区域提取,并计算区域特征参数。进行区域特征参数比较,提取车牌区域
[L,num] = bwlabel(bg2,8);%标注二进制图像中已连接的部分
Feastats = imfeature(L,'basic');%计算图像区域的特征尺寸
Area=[Feastats.Area];%区域面积
BoundingBox=[Feastats.BoundingBox];%[x y width height]车牌的框架大小
RGB = label2rgb(L, 'spring', 'k', 'shuffle'); %标志图像向RGB图像转换
figure,imshow(RGB);title('图像彩色标记');%输出框架的彩色图像
lx=0;
for l=1:num
width=BoundingBox((l-1)*4+3);%框架宽度的计算
hight=BoundingBox((l-1)*4+4);%框架高度的计算
if (width>98 & width<160 & hight>25 & hight<50)%框架的宽度和高度的范围
lx=lx+1;
Getok(lx)=l;
end
end
for k= 1:lx
l=Getok(k);
startcol=BoundingBox((l-1)*4+1)-2;%开始列
startrow=BoundingBox((l-1)*4+2)-2;%开始行
width=BoundingBox((l-1)*4+3)+8;%车牌宽
hight=BoundingBox((l-1)*4+4)+2;%车牌高
rato=width/hight;%计算车牌长宽比
if rato>2 & rato<4
break;
end
end
sbw1=bw2(startrow:startrow+hight,startcol:startcol+width-1); %获取车牌二值子图
subcol1=Sgray(startrow:startrow+hight,startcol:startcol+width-1);%获取车牌灰度子图
figure,subplot(2,1,1),imshow(subcol1);title('车牌灰度子图');%输出灰度图像
subplot(2,1,2),imshow(sbw1);title('车牌二值子图');%输出车牌的二值图
下面是我修改后的代码:
i=imread('C:\Documents and Settings\Administrator\桌面\大众1.bmp'); %输入RGB图像
j=rgb2gray(i); %图像灰度化
k=imadjust(j); %灰度拉伸调整,增强亮度
I=im2bw(k); %二值化处理
m=medfilt2(I); %中值滤波
w=double(m); %Unit8转换成双精度型,便于后面的图像处理
g=edge(w,'sobel',0.4,'both'); %边缘检测
[g,t]=edge(w,'sobel','both'); %返回阈值
t
se90=strel('line',3,90);
se0=strel('line',3,0);
p=imdilate(g,[se90,se0]); %膨胀操作,填补边缘的缝隙
n=imfill(p,'holes'); %填充操作,为使顺利分割
t=imclearborder(n,4); %清除与边界连通的背景
c=strel('square',28);
f=imclose(t,c); %形态学闭运算
e=imopen(f,c); %形态学开运算
x=imclearborder(e,4); %再次清除与边界连通的背景
se=strel('square',1);
y=imerode(x,se);
y=imerode(y,se); %平滑处理
[L,num] = bwlabel(y,8); %标注二进制图像中已连接的部分
Feastats = imfeature(L,'basic'); %计算图像区域的特征尺寸
Area=[Feastats.Area]; %区域面积
BoundingBox=[Feastats.BoundingBox]; %[x y width height]车牌的框架大小
RGB = label2rgb(L, 'spring', 'k', 'shuffle'); %标志图像向RGB图像转换
subplot(2,2,1),imshow(k); %灰色图像
subplot(2,2,2),imshow(x); %消除后的图像
subplot(2,2,3),imshow(y);
subplot(2,2,4),imshow(RGB);title('图像彩色标记');%输出框架的彩色图像
lx=0;
for l=1:num
width=BoundingBox((l-1)*4+3);%框架宽度的计算
hight=BoundingBox((l-1)*4+4);%框架高度的计算
if (width>98 & width<160 & hight>25 & hight<50)%框架的宽度和高度的范围
lx=lx+1;
Getok(lx)=l;
end
end
for k= 1:lx
l=Getok(k);
startcol=BoundingBox((l-1)*4+1)-2;%开始列
startrow=BoundingBox((l-1)*4+2)-2;%开始行
width=BoundingBox((l-1)*4+3)+8;%车牌宽
hight=BoundingBox((l-1)*4+4)+2;%车牌高
rato=width/hight;%计算车牌长宽比
if rato>2 & rato<4
break;
end
end
sbw1=w(startrow:startrow+hight,startcol:startcol+width-1); %获取车牌二值子图
subcol1=k(startrow:startrow+hight,startcol:startcol+width-1);%获取车牌灰度子图
figure,subplot(2,1,1),imshow(subcol1);title('车牌灰度子图');%输出灰度图像
subplot(2,1,2),imshow(sbw1);title('车牌二值子图');%输出车牌的二值图
%Step6 计算车牌水平投影,并对水平投影进行峰谷分析
histcol1=sum(sbw1); %计算垂直投影
histrow=sum(sbw1'); %计算水平投影
figure,subplot(2,1,1),bar(histcol1);title('垂直投影(含边框)');%输出垂直投影
subplot(2,1,2),bar(histrow); title('水平投影(含边框)');%输出水平投影
figure,subplot(2,1,1),bar(histrow); title('水平投影(含边框)');%输出水平投影
subplot(2,1,2),imshow(sbw1);title('车牌二值子图');%输出二值图
能否解释一下?
matlab车牌识别图像调整程序,matlab完整车牌识别程序,包括报告及图像相关推荐
- 开源程序识别图像像素点_开源浏览器扩展程序,可放大图像
开源程序识别图像像素点 您是否曾经浏览过网站并希望看到更大的图像? 这无时无刻不在我身上发生,要做到这一点并不总是那么容易. 有时,我在源代码中进行筛选,使用Ctrl + F搜索图像,复制图像源地址并 ...
- matlab 指纹,一种基于matlab的指纹识别方法
一种基于matlab的指纹识别方法 [技术领域] [0001 ] 本发明涉及指纹识别领域,特别涉及一种基于MTLAB的指纹识别方法. [背景技术] [0002] 传统的安防系统主要采用基于令牌或密码的 ...
- matlab车牌识别课程设计,matlab车牌识别课程设计报告模板(附源代码).doc
您所在位置:网站首页 > 海量文档  > 计算机 > matlab matlab车牌识别课程设计报告模板(附源代码). ...
- 基于matlab的车牌识别系统设计,基于MATLAB的车牌识别系统设计
在图像处理领域,数字图像处理技术取得了飞速发展,并在国民经济的各个领域得到广泛应用.尤其在智能交通管理中汽车牌照识别技术方面具有重要的理论意义和实用价值.汽车牌照识别技术主要任务是实现对汽车监控视频所 ...
- 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板+语音播报)【含Matlab源码 1220期】
⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...
- 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板)【含Matlab源码 790期】
⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...
- Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别
Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 目录 车牌图像数据集 视频动态演示 核心代码 相关文章 Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别 Matl ...
- 【车牌识别】RGB颜色模型车牌识别【含GUI Matlab源码 888期】
⛄一.车牌识别简介 1 车牌图像处理 车牌图像处理主要有五个组成部分:图像灰度化.图像二值化.图像边缘检测.图像形态学运算和图像滤波处理.它是车牌识别系统中最根本且最基础的操作,车牌图像处理的好坏情况 ...
- matlab中caitu_tiqu,源码交流=图像处理 车牌号码识别[Tested]
clc,clear,close all % ==============测定算法执行的时间,开始计时================= %=====================读入图片====== ...
- 【车牌识别】基于matlab GUI阈值分割车牌识别(带面板)【含Matlab源码 721期】
⛄一.车牌识别简介 1 车牌图像处理 车牌图像处理主要有五个组成部分:图像灰度化.图像二值化.图像边缘检测.图像形态学运算和图像滤波处理.它是车牌识别系统中最根本且最基础的操作,车牌图像处理的好坏情况 ...
最新文章
- python3 系统监控脚本(CPU,memory,网络,disk等)
- IT兄弟连 Java语法教程 Java的发展历程
- css div里引用em字体会变斜体_前端开发中7种必要了解的CSS长度单位
- 一文读懂DataOps
- 高通芯片曾被发现一重大漏洞 影响骁龙845等30多款芯片
- 计算机人员简历英语,计算机专业英文个人简历范文
- [转载] dataframe按列/行遍历数据
- visual studio配置opencv
- Java——单例模式:饿汉、懒汉模式
- 爬虫抓取百度文库中的文献
- 一次Nginx 502问题解决
- 全球及中国钢铁行业供需格局与未来前景分析报告2022版
- 2022 携程提前批大数据一二(oc) 面经
- bzoj 2959: 长跑 lct+并查集
- 计算机分盘介质受写入保护,“介质受写入保护”的解决(适用于U盘或移动硬盘)...
- 联想电脑无法进入计算机,联想电脑进不去主界面怎么办
- “电脑开的热点手机连接不上”的问题寻解过程记录
- 大韩航空如何成为一流航空——等级文化与称呼的改变
- 了解掌握Java的循环语句、条件语句、分支语句(Java 从自学到就业 第3天)
- Xshell光标消失
热门文章
- MySQL客户端工具的选择
- R语言超星学习通习题
- scrt配置服务器免密登录
- 均匀分布 卡方分布_高等数理统计—第一章 统计分布基础
- 复变函数在计算机科学中的应用,复变函数的应用以及发展史
- PN5321(PN5321A3HN/C106)国产替代,FSVP532软硬件兼容,支持A卡,B卡,FeliCa卡,支持ISO/IEC18092,ECM340点对点
- Java程序员面试简历模板(30套简历模板+300套简历)
- 西蒙斯的赚钱秘籍:隐马尔科夫模型(HMM)的择时应用
- 网件rax40可以刷梅林_良心曝光网件rax40和华硕ax3000哪个好用?差别大吗?亲测解析内情...
- 机械--NX2007(UG)有限元分析教程1--简单物体