首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

MATLAB车牌识别完整程序系统(可运行系统)

大数据 254.58KB 29 需要积分: 1
立即下载

资源介绍:

车牌识别的步骤一般包括以下几个方面: 图像预处理:对输入图像进行预处理,包括图像增强、降噪、灰度化等操作。 车牌定位:通过图像处理算法,将图像中的车牌区域进行定位和提取。 字符分割:将定位到的车牌区域进行字符分割,将车牌上的每个字符单独提取出来。 字符识别:对提取到的字符进行识别,可以使用传统的模式识别方法,如模板匹配、字符特征提取等,或者使用深度学习方法进行训练和识别。 结果输出:将识别结果进行整合和输出,可以将识别到的字符按照顺序组合成车牌号码。 需要注意的是,车牌识别的步骤可能会根据具体的算法和实现方式有所差异,上述步骤仅为一种常见的实现流程。
%% clear; close all; clc; mainfc; %% 自动弹出提示框读取图像 [filename filepath] = uigetfile('.jpg', '输入一个需要识别的图像'); file = strcat(filepath, filename); img = imread(file); figure; imshow(img); title('车牌图像'); %% 灰度处理 img1 = rgb2gray(img); % RGB图像转灰度图像 figure; subplot(1, 2, 1); imshow(img1); title('灰度图像'); subplot(1, 2, 2); imhist(img1); title('灰度处理后的灰度直方图'); %% 边缘提取 img4 = edge(img1, 'roberts', 0.15, 'both'); figure('name','边缘检测'); imshow(img4); title('roberts算子边缘检测'); %% 图像腐蚀 se=[1;1;1]; img5 = imerode(img4, se); figure('name','图像腐蚀'); imshow(img5); title('图像腐蚀后的图像'); %% 平滑图像,图像膨胀 se = strel('rectangle', [30, 30]); img6 = imclose(img5, se); figure('name','平滑处理'); imshow(img6); title('平滑图像的轮廓'); %% 从图像中删除所有少于2200像素8邻接 img7 = bwareaopen(img6, 2200); figure('name', '移除小对象'); imshow(img7); title('从图像中移除小对象'); %% 切割出图像 [y, x, z] = size(img7); img8 = double(img7); % 转成双精度浮点型 % 车牌的蓝色区域 % Y方向 blue_Y = zeros(y, 1); for i = 1:y for j = 1:x if(img8(i, j) == 1) % 判断车牌位置区域 blue_Y(i, 1) = blue_Y(i, 1) + 1; % 像素点统计 end end end % 找到Y坐标的最小值 img_Y1 = 1; while (blue_Y(img_Y1) < 5) && (img_Y1 < y) img_Y1 = img_Y1 + 1; end % 找到Y坐标的最大值 img_Y2 = y; while (blue_Y(img_Y2) < 5) && (img_Y2 > img_Y1) img_Y2 = img_Y2 - 1; end % x方向 blue_X = zeros(1, x); for j = 1:x for i = 1:y if(img8(i, j) == 1) % 判断车牌位置区域 blue_X(1, j) = blue_X(1, j) + 1; end end end % 找到x坐标的最小值 img_X1 = 1; while (blue_X(1, img_X1) < 5) && (img_X1 < x) img_X1 = img_X1 + 1; end % 找到x坐标的最小值 img_X2 = x; while (blue_X(1, img_X2) < 5) && (img_X2 > img_X1) img_X2 = img_X2 - 1; end % 对图像进行裁剪 img9 = img(img_Y1:img_Y2, img_X1:img_X2, :); figure('name', '定位剪切图像'); imshow(img9); title('定位剪切后的彩色车牌图像') % 保存提取出来的车牌图像 imwrite(img9, '车牌图像.jpg'); %% 对车牌图像作图像预处理 plate_img = imread('车牌图像.jpg'); % 转换成灰度图像 plate_img1 = rgb2gray(plate_img); % RGB图像转灰度图像 figure; subplot(1, 2, 1); imshow(plate_img1); title('灰度图像'); subplot(1, 2, 2); imhist(plate_img1); title('灰度处理后的灰度直方图'); % 直方图均衡化 plate_img2 = histeq(plate_img1); figure('name', '直方图均衡化'); subplot(1,2,1); imshow(plate_img2); title('直方图均衡化的图像'); subplot(1,2,2); imhist(plate_img2); title('直方图'); % 二值化处理 plate_img3 = im2bw(plate_img2, 0.76); figure('name', '二值化处理'); imshow(plate_img3); title('车牌二值图像'); % 中值滤波 plate_img4 = medfilt2(plate_img3); figure('name', '中值滤波'); imshow(plate_img4); title('中值滤波后的图像'); %% 进行字符识别 plate_img5 = dingwei(plate_img4); [m, n] = size(plate_img5); s = sum(plate_img5); %sum(x)就是竖向相加,求每列的和,结果是行向量; j = 1; k1 = 1; k2 = 1; while j ~= n while s(j) == 0 j = j + 1; end k1 = j; while s(j) ~= 0 && j <= n-1 j = j + 1; end k2 = j + 1; if k2 - k1 > round(n / 6.5) [val, num] = min(sum(plate_img5(:, [k1+5:k2-5]))); plate_img5(:, k1+num+5) = 0; end end y1 = 10; y2 = 0.25; flag = 0; word1 = []; while flag == 0 [m, n] = size(plate_img5); left = 1; width = 0; while sum(plate_img5(:, width+1)) ~= 0 width = width + 1; end if width < y1 plate_img5(:, [1:width]) = 0; plate_img5 = dingwei(plate_img5); else temp = dingwei(imcrop(plate_img5, [1,1,width,m])); [m, n] = size(temp); all = sum(sum(temp)); two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:))); if two_thirds/all > y2 flag = 1; word1 = temp; end plate_img5(:, [1:width]) = 0; plate_img5 = dingwei(plate_img5); end end figure; subplot(2,4,1), imshow(plate_img5); % 分割出第二个字符 [word2,plate_img5]=getword(plate_img5); subplot(2,4,2), imshow(plate_img5); % 分割出第三个字符 [word3,plate_img5]=getword(plate_img5); subplot(2,4,3), imshow(plate_img5); % 分割出第四个字符 [word4,plate_img5]=getword(plate_img5); subplot(2,4,4), imshow(plate_img5); % 分割出第五个字符 [word5,plate_img5]=getword(plate_img5); subplot(2,3,4), imshow(plate_img5); % 分割出第六个字符 [word6,plate_img5]=getword(plate_img5); subplot(2,3,5), imshow(plate_img5); % 分割出第七个字符 [word7,plate_img5]=getword(plate_img5); subplot(2,3,6), imshow(plate_img5); figure; subplot(5,7,1),imshow(word1),title('1'); subplot(5,7,2),imshow(word2),title('2'); subplot(5,7,3),imshow(word3),title('3'); subplot(5,7,4),imshow(word4),title('4'); subplot(5,7,5),imshow(word5),title('5'); subplot(5,7,6),imshow(word6),title('6'); subplot(5,7,7),imshow(word7),title('7'); word1=imresize(word1,[40 20]);%imresize对图像做缩放处理,常用调用格式为:B=imresize(A,ntimes,method);其中method可选nearest,bilinear(双线性),bicubic,box,lanczors2,lanczors3等 word2=imresize(word2,[40 20]); word3=imresize(word3,[40 20]); word4=imresize(word4,[40 20]); word5=imresize(word5,[40 20]); word6=imresize(word6,[40 20]); word7=imresize(word7,[40 20]); subplot(5,7,15),imshow(word1),title('11'); subplot(5,7,16),imshow(word2),title('22'); subplot(5,7,17),imshow(word3),title('33'); subplot(5,7,18),imshow(word4),title('44'); subplot(5,7,19),imshow(word5),title('55'); subplot(5,7,20),imshow(word6),title('66'); subplot(5,7,21),imshow(word7),title('77'); imwrite(word1,'1.jpg'); % 创建七位车牌字符图像 imwrite(word2,'2.jpg'); imwrite(word3,'3.jpg'); imwrite(word4,'4.jpg'); imwrite(word5,'5.jpg'); imwrite(word6,'6.jpg'); imwrite(word7,'7.jpg'); %% 进行字符识别 liccode=char(['0':'9' 'A':'Z' '京辽鲁陕苏豫浙贵']);%建立自动识别字符代码表;'京津沪渝港澳吉辽鲁豫冀鄂湘晋青皖苏赣浙闽粤琼台陕甘云川贵黑藏蒙桂新宁' % 编号:0-9分别为 1-10;A-Z分别为 11-36; % 京 津 沪 渝 港 澳 吉 辽 鲁 豫 冀 鄂 湘 晋 青 皖 苏 % 赣 浙 闽 粤 琼 台 陕 甘 云 川 贵 黑 藏 蒙 桂 新 宁 % 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 % 60 61 62 63 64 65 66 67 68 69 70 subBw2 = zeros(40, 20); num = 1; % 车牌位数 for i = 1:7 ii = int2str(i); % 将整型数据转换为字符串型数据 word = imread([ii,'.jpg']); % 读取之前分割出的字符的图片 segBw2 = imresize(word, [40,20], 'nearest'); % 调整图片的大小 segBw2 = im2bw(segBw2, 0.5); % 图像二值化 if i == 1 % 字符第一位为汉字,定位汉字所在字段 kMin = 37; kMax = 44; elseif i == 2 % 第二位为英文字母,定位字母所在字段 kMin = 11; kMax = 36; elseif i >= 3 % 第三位开始就是数字了,定位数字所在字段 kMin = 1; kMax = 36; end l = 1; for k = kMin : kMax fname = strcat('字符模板\',liccode(k),'.jpg'); % 根据字符库找到图片模板 samBw2 = imread(fname); % 读取模板库中的图片 samBw2 = im2bw(samBw2, 0.5); % 图像二值化 % 将待识别图片与模板图片做差 for i1 = 1:40 for j1 = 1:20 subBw2(i1, j1) = segBw2(i1, j1) - samBw2(i1 ,j1); end end % 统计两幅图片不同点的个数,并保存下来 Dmax = 0; for i2 = 1:40 for j2 = 1:20 if subBw2(i2, j2) ~= 0 Dmax = Dmax + 1; end end end error(l) = Dmax; l = l + 1; end % 找到图片差别最少的图像 errorMin = min(error); findc = find(error == errorMin); % error % findc % 根据字库,对应到识别的字符 Code(num*2 - 1) = liccode(findc(1) + kMin - 1); Code(nu

资源文件列表:

MATLAB车牌识别完整程序系统(可运行系统).zip 大约有69个文件
  1. MATLAB车牌识别完整程序系统(可运行系统)/
  2. MATLAB车牌识别完整程序系统(可运行系统)/1.jpg 898B
  3. MATLAB车牌识别完整程序系统(可运行系统)/2.jpg 828B
  4. MATLAB车牌识别完整程序系统(可运行系统)/3.jpg 690B
  5. MATLAB车牌识别完整程序系统(可运行系统)/4.jpg 767B
  6. MATLAB车牌识别完整程序系统(可运行系统)/5.jpg 672B
  7. MATLAB车牌识别完整程序系统(可运行系统)/6.jpg 798B
  8. MATLAB车牌识别完整程序系统(可运行系统)/7.jpg 698B
  9. MATLAB车牌识别完整程序系统(可运行系统)/B.jpg 884B
  10. MATLAB车牌识别完整程序系统(可运行系统)/dingwei.m 642B
  11. MATLAB车牌识别完整程序系统(可运行系统)/getword.m 1.74KB
  12. MATLAB车牌识别完整程序系统(可运行系统)/main.m 7.93KB
  13. MATLAB车牌识别完整程序系统(可运行系统)/mainfc.p 202B
  14. MATLAB车牌识别完整程序系统(可运行系统)/MATLAB车牌定位实现系统/
  15. MATLAB车牌识别完整程序系统(可运行系统)/MATLAB车牌定位实现系统/1.jpg 4.83KB
  16. MATLAB车牌识别完整程序系统(可运行系统)/MATLAB车牌定位实现系统/finddomain.m 1.21KB
  17. MATLAB车牌识别完整程序系统(可运行系统)/MATLAB车牌定位实现系统/main.m 2.67KB
  18. MATLAB车牌识别完整程序系统(可运行系统)/MATLAB车牌定位实现系统/mainfc.p 202B
  19. MATLAB车牌识别完整程序系统(可运行系统)/MATLAB车牌定位实现系统/removeLargeArea.m 2.75KB
  20. MATLAB车牌识别完整程序系统(可运行系统)/MATLAB车牌定位实现系统/二值图结果.bmp 1.92KB
  21. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/
  22. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/0.jpg 660B
  23. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/1.jpg 482B
  24. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/2.jpg 12.06KB
  25. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/3.jpg 793B
  26. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/4.jpg 11.74KB
  27. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/5.jpg 12.05KB
  28. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/6.jpg 797B
  29. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/7.jpg 583B
  30. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/8.jpg 789B
  31. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/9.jpg 778B
  32. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/A.jpg 806B
  33. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/B.jpg 884B
  34. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/C.jpg 771B
  35. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/D.jpg 662B
  36. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/E.jpg 11.59KB
  37. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/F.jpg 11.45KB
  38. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/G.jpg 11.99KB
  39. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/H.jpg 439B
  40. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/I.jpg 11.29KB
  41. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/J.jpg 566B
  42. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/k.jpg 764B
  43. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/L.jpg 598B
  44. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/M.jpg 772B
  45. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/N.jpg 11.95KB
  46. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/O.jpg 11.96KB
  47. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/P.jpg 656B
  48. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/Q.jpg 828B
  49. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/R.jpg 12.03KB
  50. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/S.jpg 12.14KB
  51. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/T.jpg 11.17KB
  52. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/U.jpg 11.74KB
  53. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/V.jpg 793B
  54. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/W.jpg 12.02KB
  55. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/X.jpg 797B
  56. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/Y.jpg 668B
  57. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/Z.jpg 11.79KB
  58. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/京.jpg 890B
  59. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/浙.jpg 787B
  60. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/苏.jpg 824B
  61. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/豫.jpg 918B
  62. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/贵.jpg 898B
  63. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/辽.jpg 13.83KB
  64. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/陕.jpg 867B
  65. MATLAB车牌识别完整程序系统(可运行系统)/字符模板/鲁.jpg 858B
  66. MATLAB车牌识别完整程序系统(可运行系统)/车牌图像.jpg 3.54KB
  67. MATLAB车牌识别完整程序系统(可运行系统)/车牌图片/
  68. MATLAB车牌识别完整程序系统(可运行系统)/车牌图片/car1.jpg 30.97KB
  69. MATLAB车牌识别完整程序系统(可运行系统)/车牌图片/car2.jpg 59.61KB
0评论
提交 加载更多评论
其他资源 IPA苹果签名工具 包含win版、MAC版,支持 windows 电脑和 Mac OS 电脑,使用方便,操作简单
ipa文件是苹果应用分发程序的标准格式。在某些特定情况下,开发者需要在未越狱的设备上 安装未通过App Store审核的应用,用于内部测试等,此情形下需要用到ipa签名工具。 现款IPA重签名工具,支持 windows 电脑和 Mac OS 电脑。用户只需简单地将它们导入到 工具中,工具内即可解析并读取ipa包所有信息,允许用户选择要使用的证书和配置文件 并支持App Name和Bundle ID的修改,仅用几秒钟即可重新签名成功,此版本解决了 困扰大家的系统兼容问题,安装方便、操作简单、支持个人、公司和企业级开发者证 书,安全便捷。对于需要IPA文件签名的用户或开发者在非越狱设备上测试应用来说,这款免费的IPA签名打包工具是不错的选择,值得推荐。
1_暑假练习卷 答案.zip
1_暑假练习卷 答案.zip
1_暑假练习卷 答案.zip 1_暑假练习卷 答案.zip 1_暑假练习卷 答案.zip
基于JAVA的大学生竞赛管理系统(Vue.js+SpringBoot+MySQL)
基于Vue.js和SpringBoot的大学生竞赛管理系统是一个专为高校竞赛活动设计的综合性管理平台,它分为管理后台和用户网页端,以满足不同角色的需求。管理员可以通过后台进行学生和教师信息的管理,包括添加、删除和修改等操作,确保信息的准确性和完整性。学生和教师则可以通过用户网页端查看竞赛信息,了解竞赛的规则、时间、地点等关键信息,并进行竞赛报名。此外,系统还提供了基础模块,如用户登录、权限管理等,以保障系统的安全性和稳定性。整个系统的设计旨在提高竞赛管理的效率,方便学生和教师参与竞赛活动,同时也为管理员提供了一个高效的管理工具。 演示录屏:https://www.bilibili.com/video/BV1zw4m1o7Gj 配套教程:https://www.bilibili.com/video/BV1pW4y1P7GR
基于JAVA的大学生竞赛管理系统(Vue.js+SpringBoot+MySQL) 基于JAVA的大学生竞赛管理系统(Vue.js+SpringBoot+MySQL) 基于JAVA的大学生竞赛管理系统(Vue.js+SpringBoot+MySQL)
基于JAVA的租房管理系统(Vue.js+SpringBoot+MySQL)
基于Vue.js和SpringBoot的租房管理系统是一个功能全面、易于使用的在线租房平台,它为管理员、租客和屋主提供了一个统一的操作界面。该系统分为管理后台和用户网页端,支持多角色使用,包括管理员、租客和屋主。在管理后台,管理员可以对房源信息进行添加、修改和删除,同时可以查看租客评价、管理房源订单和留言板。用户网页端则为租客和屋主提供了房源浏览、搜索、预订、评价等功能,同时租客和屋主还可以在留言板上进行交流。整个系统采用前后端分离的开发模式,前端使用Vue.js框架,后端使用SpringBoot框架,保证了系统的高性能和可扩展性。 演示录屏:https://www.bilibili.com/video/BV1YC411p7n9 配套教程:https://www.bilibili.com/video/BV1pW4y1P7GR
MATLAB车牌识别实现车牌定位仿真系统(可运行)
车牌定位分为以下步骤: 图像预处理:读取图像并对其进行预处理,例如灰度化、降噪和增强等。 车牌区域定位:使用图像处理技术,例如边缘检测、连通区域检测和形态学操作等,找到车牌的大致位置。 车牌区域精确定位:通过进一步的图像处理技术,例如投影、边缘检测和形态学操作等,对车牌区域进行精确定位。 字符分割:将车牌区域中的字符进行分割,形成单独的字符图像。 字符识别:使用字符识别算法,例如模板匹配、神经网络或支持向量机等,对分割的字符进行识别。 本设计非常适合新手学习使用,进阶研究等二次开发。欢迎大家多多下载交流学习研究。
Nvidia设备APX驱动以及nvflash
tegra芯片的APX驱动,以及nvflash,主要针对英伟达平台的芯片,包括jetson系列的出现APX问题时使用。注意要拿到自己芯片的PT(分区)文件,和flash.cfg文件。
静态页面仿第五人格官网(简易版)
静态页面仿第五人格官网(简易版)
静态页面仿第五人格官网(简易版) 静态页面仿第五人格官网(简易版) 静态页面仿第五人格官网(简易版)
【Streamlit学习笔记】解压RAR文件报错资源
【Streamlit学习笔记】解压RAR文件报错资源