车牌识别系统MATLAB源代码完整解析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
clc; clear all; close all; [filename, pathname, filterindex] = uigetfile({*.jpg;*.tif;*.png;*.gif,All Image Files;... *.*,All Files }, 选择待处理图像, ... images\01.jpg); file = fullfile(pathname, filename);%文件路径和文件名创建合成完整文件名 id = Get_Id(file);%得到file中的所有对象 Img = imread(file);%根据路径和文件名读取图片到Img [Plate, bw, Loc] = Pre_Process(Img); % 车牌区域预处理 result = Plate_Process(Plate, id); % 车牌区域二值化处理 % 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割 bw = Segmation(result); words = Main_Process(bw); % 主流程处理 Write_Mask(words, id); % 写出到模板库 str = Pattern_Recognition(words); % 识别 function id = Get_Id(file) % 获取图像id信息 % 输入参数: % file——图像路径 % 输出参数: % id——图像id信息 info = imfinfo(file); FS = [422227 354169 293184 235413 214202 ... 130938 490061 120297 98686 137193 ... 80558 46208 69947 58110 62115 ... 59072 52168 60457 53979 50223]; id = find(FS == info.FileSize); if isempty(id) warndlg(未建立该图像模板库,可能运行出错!, 警告); id = 1; end function R = Cubic_Spline(P) % 三次样条插值 % 输入参数: % P——节点矩阵 % 输出参数: % R——样条节点矩阵 % 计算相邻插值点之间的弦长 chordlen = sqrt(sum(diff(P, [], 1).^2,2)); % 将弦长参数归一化到[0,1]上 chordlen = chordlen/sum(chordlen); % 计算每个插值节点处的累加弦长,作为给点处的参数 cumarc = [0; cumsum(chordlen)]; x = cumarc; N = size(P, 1); R = []; % 以下部分为一元三次样条插值的程序,对于空间三维数据,以同样的累加 % 弦长作为参数,对x,y,z分量做三次一元样条插值得到的结果便是对三维数据 % 做三次样条插值 for k = 1 : size(P, 2) y = P(:, k); m = zeros(1, N); M = zeros(1, N); n = m; d = m; A = eye(N); A = 2*A; m(1) = 1; n(N) = 1; m(N) = 1; n(1) = 1; for i = 2:N-1 m(i) = (x(i+1)-x(i))/(x(i+1)-x(i-1)); n(i) = 1 - m(i); d(i) = 6*((y(i+1) - y(i))/(x(i+1) - x(i)) - (y(i) - y(i-1))/(x(i) - x(i-1)))/(x(i+1)-x(i-1)); end for j = 1 : N-1 A(j, j+1) = m(j); A(j+1, j) = n(j+1); end p = A(2:N-1, 2:N-1); q = d(2:N-1); Q = inv(p)*q; M = zeros(1,N); M(1,1) = 0; M(1,N) = 0; M(1,2:N-1)= Q; S = []; temp = []; for i = 1:N-1 % 对每一个分量计算出来的插值曲线进行采样,以便将其画出。 s = 50;% 采样点

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档