欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    车牌识别系统MATLAB源代码完整解析Word文档格式.docx

    • 资源ID:3176200       资源大小:21.95KB        全文页数:28页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    车牌识别系统MATLAB源代码完整解析Word文档格式.docx

    1、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;endfunction R = Cubic_Spline(P)% 三次样条插值% P节点矩阵% R样条节点矩阵%

    2、计算相邻插值点之间的弦长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);

    3、 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)

    4、; A(j+1, j) = n(j+1); p = A(2:N-1, 2:N-1); q = d(2: 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: % 对每一个分量计算出来的插值曲线进行采样,以便将其画出。 s = 50;% 采样点个数 z = linspace(x(i),x(i+1),s); h = x(i+1)-x(i); for j = 1:length(z) S(j) = M(i)*(x(i+1)-z(j)3)/(6*h)+M(i+1)*(z(

    5、j)-x(i)3)/(6*h)+(y(i)-M(i)*(h2)/6)*(x(i+1)-z(j)/h)+(y(i+1)-M(i+1)*h2/6)*(z(j)-x(i)/h); temp = temp S; R(:, k) = temp;function mask = Get_PointSplineMask(Img, Ptn)% 获取封闭有序节点的蒙板图像% Img图像矩阵% Ptn封闭有序节点% mask蒙板图像if ndims(Img) = 3 I = rgb2gray(Img);else I = Img;mask = zeros(size(I);Ptn = Cubic_Spline(Ptn)

    6、; % 样条插值for i = 1 : size(Ptn, 1)-1 pt1 = Ptn(i, : % 线段起点 pt2 = Ptn(i+1, : % 线段终点 x1 = pt1(1); y1 = pt1(2); x2 = pt2(1); y2 = pt2(2); % 直线段参数 A = (y1 - y2)/(x1*y2 - x2*y1); B = (-x1 + x2)/(x1*y2 - x2*y1); % 直线段取点 xk = linspace(min(x1, x2), max(x1, x2); if B = 0 yk = linspace(min(y1, y2), max(y1, y2);

    7、 else yk = (-1 - A*xk)/B; % 赋值操作 length(xk) if isnan(round(yk(j) & isnan(round(xk(j) & . isinf(round(yk(j) & isinf(round(xk(j) & round(yk(j) 0 & round(xk(j) 0 mask(round(yk(j), round(xk(j) = 1;mask = logical(mask); % 类型转换mask = bwmorph(mask, bridge % 桥接操作mask = imfill(mask, hole % 补洞操作function Im =

    8、Image_Rotate(Img, num, flag)% 旋转校正函数% 输入函数:% num图像序号% flag显示图像窗口% 输出函数:% Im结果图像if nargin 3 flag = 0;role = 6 0 0 -13 5 10 0 10 0 -5 2 -1 2 2 0 -5 -2 0 6 2;Im = imrotate(Img, role(num), bilinearif flag figure(2); subplot(1, 2, 1); imshow(Img); title(原图像 subplot(1, 2, 2); imshow(Im);旋转图像function words

    9、 = Main_Process(bw, flag_display)% 主流程处理,分割字符并获取% bw车牌区域图像% flag_display显示图像标记% words车牌字符数据 2 flag_display = 1;m, n = size(bw);k1 = 1;k2 = 1;s = sum(bw); % 列积分投影j = 1; % 列游标while j = n % 寻找车牌图像左侧边界 while s(j) = 0 & j Tol val, num = min(sum(bw(:, k1+5:k2-5); bw(:, k1+num+5)=0; % 抹去该字符% 再切割bw = Segmat

    10、ion(bw);% 切割出 7 个字符wideTol = round(n/20); % 区域宽度最小约束rateTol = 0.25; % 中心区域比值约束flag = 0;word1 = ;while flag = 0 m, n = size(bw); left = 1; wide = 0; % 找到空隙位置 while sum(bw(:,wide+1) = 0 wide = wide+1; if wide rateTol flag = 1; word1 = temp; %提取WORD 1 % 抹去已处理的区域% 分割出第二个字符word2, bw = Word_Segmation(bw);

    11、% 分割出第三个字符word3, bw = Word_Segmation(bw);% 分割出第四个字符word4, bw = Word_Segmation(bw);% 分割出第五个字符word5, bw = Word_Segmation(bw);% 分割出第六个字符word6, bw = Word_Segmation(bw);% 分割出第七个字符word7, bw = Word_Segmation(bw);wid = size(word1, 2) size(word2, 2) size(word3, 2) . size(word4, 2) size(word5, 2) size(word6,

    12、2) size(word7, 2);maxwid, indmax = max(wid);maxwid = maxwid + 10;wordi = word1;wordi = zeros(size(wordi, 1), round(maxwid-size(word1, 2)/2) wordi zeros(size(wordi, 1), round(maxwid-size(word1, 2)/2);word1 = wordi;wordi = word2;wordi = zeros(size(wordi, 1), round(maxwid-size(word2, 2)/2) wordi zeros(

    13、size(wordi, 1), round(maxwid-size(word2, 2)/2);word2 = wordi;wordi = word3;wordi = zeros(size(wordi, 1), round(maxwid-size(word3, 2)/2) wordi zeros(size(wordi, 1), round(maxwid-size(word3, 2)/2);word3 = wordi;wordi = word4;wordi = zeros(size(wordi, 1), round(maxwid-size(word4, 2)/2) wordi zeros(size

    14、(wordi, 1), round(maxwid-size(word4, 2)/2);word4 = wordi;wordi = word5;wordi = zeros(size(wordi, 1), round(maxwid-size(word5, 2)/2) wordi zeros(size(wordi, 1), round(maxwid-size(word5, 2)/2);word5 = wordi;wordi = word6;wordi = zeros(size(wordi, 1), round(maxwid-size(word6, 2)/2) wordi zeros(size(wor

    15、di, 1), round(maxwid-size(word6, 2)/2);word6 = wordi;wordi = word7;wordi = zeros(size(wordi, 1), round(maxwid-size(word7, 2)/2) wordi zeros(size(wordi, 1), round(maxwid-size(word7, 2)/2);word7 = wordi;% figure(1);% subplot(2, 7, 1); imshow(word1);字符1% subplot(2, 7, 2); imshow(word2);字符2% subplot(2,

    16、7, 3); imshow(word3);字符3% subplot(2, 7, 4); imshow(word4);字符4% subplot(2, 7, 5); imshow(word5);字符5% subplot(2, 7, 6); imshow(word6);字符6% subplot(2, 7, 7); imshow(word7);字符7% 切割出的字符归一化大小为 40*20,此处演示word11 = imresize(word1, 40 20);word21 = imresize(word2, 40 20);word31 = imresize(word3, 40 20);word41

    17、= imresize(word4, 40 20);word51 = imresize(word5, 40 20);word61 = imresize(word6, 40 20);word71 = imresize(word7, 40 20);% subplot(2, 7, 8); imshow(word11);% subplot(2, 7, 9); imshow(word21);% subplot(2, 7, 10); imshow(word31);% subplot(2, 7, 11); imshow(word41);% subplot(2, 7, 12); imshow(word51);%

    18、 subplot(2, 7, 13); imshow(word61);% subplot(2, 7, 14); imshow(word71);% 赋值操作words.word1 = word11;words.word2 = word21;words.word3 = word31;words.word4 = word41;words.word5 = word51;words.word6 = word61;words.word7 = word71;if flag_display figure; subplot(2, 7, 1);FontWeightBold subplot(2, 7, 2); su

    19、bplot(2, 7, 3); subplot(2, 7, 4); subplot(2, 7, 5); subplot(2, 7, 6); subplot(2, 7, 7); subplot(2, 7, 8); subplot(2, 7, 9); subplot(2, 7, 10); subplot(2, 7, 11); subplot(2, 7, 12); subplot(2, 7, 13); subplot(2, 7, 14);function mask = Mask_Process(Img, id)% 图像蒙版处理函数% id图像序号% mask模板图像% 如果已经存在模板图像则不再取模

    20、板filename = sprintf(maskmask%d.jpg, id);if exist(filename, file) mask = imread(filename); if isa(mask, logical mask = im2bw(mask); sz = size(Img); if isequal(sz(1:2), size(mask) mask = imresize(mask, sz(1:2); mask = logical(mask); return;I = Img;Ptn = ;figure;subplot(1, 3, 1); imshow(I);title(取点_左键取

    21、点,右键退出Colorrhold on;set(gcf, unitsnormalizedposition, 0 0 1 1);x, y, button = ginput(1); % 点击while button = 1 plot(x, y, r+LineWidth, 2); % 绘制节点 Ptn = Ptn; x y; % 存储节点 x, y, button = ginput(1);if size(Ptn, 1) Ptn = Ptn; Ptn(1, :);plot(Ptn(:, 1), Ptn(:, 2), ro-, 2, MarkerFaceColorkmask = Get_PointSplineMask(I, Ptn); % 获取蒙板图像subplot(1, 3, 2); imshow(mask);蒙板图像if ndims(I) = 3 I1 = I .* uint8(cat(3, mask, mask, mask); if isequal(size(I), size(mask) mask = imresize(mask, size(I); I1 = I .* mask;subplot(1, 3, 3); imshow(I


    注意事项

    本文(车牌识别系统MATLAB源代码完整解析Word文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开