└── License_plate_recognition ├── 1.jpg ├── 2.jpg ├── 201.jpg ├── 3.jpg ├── 4.jpg ├── 5.jpg ├── 6.jpg ├── 7.jpg ├── 8.jpg ├── CarId.fig ├── CarId.m ├── CarId_App.mlapp ├── getword.m ├── model ├── 0.jpg ├── 1.jpg ├── 2.jpg ├── 3.jpg ├── 4.jpg ├── 5.jpg ├── 6.jpg ├── 7.jpg ├── 8.jpg ├── 9.jpg ├── A.jpg ├── B.jpg ├── C.jpg ├── D.jpg ├── E.jpg ├── F.jpg ├── G.jpg ├── H.jpg ├── I.jpg ├── J.jpg ├── K.jpg ├── L.jpg ├── M.jpg ├── N.jpg ├── O.jpg ├── P.jpg ├── Q.jpg ├── R.jpg ├── S.jpg ├── T.jpg ├── U.jpg ├── V.jpg ├── W.jpg ├── X.jpg ├── Y.jpg ├── Z.jpg ├── 京.jpg ├── 冀.jpg ├── 吉.jpg ├── 宁.jpg ├── 川.jpg ├── 晋.jpg ├── 津.jpg ├── 浙.jpg ├── 湘.jpg ├── 皖.jpg ├── 粤.jpg ├── 苏.jpg ├── 蒙.jpg ├── 警.jpg ├── 豫.jpg ├── 贵.jpg ├── 赣.jpg ├── 辽.jpg ├── 闽.jpg ├── 陕.jpg ├── 鲁.jpg └── 黑.jpg ├── my_imsplit.m ├── 中值滤波.jpg ├── 车牌图像.jpg └── 车牌库 ├── b1.jpg ├── b1参数.png ├── b2.jpg ├── b2参数.png ├── carg2.jpg ├── g1.jpg ├── g1参数.png ├── g2.png ├── g2参数.png ├── w1.png ├── w1参数.png ├── y1.png └── y1参数.png /License_plate_recognition/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/1.jpg -------------------------------------------------------------------------------- /License_plate_recognition/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/2.jpg -------------------------------------------------------------------------------- /License_plate_recognition/201.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/201.jpg -------------------------------------------------------------------------------- /License_plate_recognition/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/3.jpg -------------------------------------------------------------------------------- /License_plate_recognition/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/4.jpg -------------------------------------------------------------------------------- /License_plate_recognition/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/5.jpg -------------------------------------------------------------------------------- /License_plate_recognition/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/6.jpg -------------------------------------------------------------------------------- /License_plate_recognition/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/7.jpg -------------------------------------------------------------------------------- /License_plate_recognition/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/8.jpg -------------------------------------------------------------------------------- /License_plate_recognition/CarId.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/CarId.fig -------------------------------------------------------------------------------- /License_plate_recognition/CarId.m: -------------------------------------------------------------------------------- 1 | % ****************************************************** 2 | % author: Evan 3 | % title : 车牌识别 4 | % ******************************************************* 5 | 6 | function varargout = CarId(varargin) 7 | % CARID MATLAB code for CarId.fig 8 | % CARID, by itself, creates a new CARID or raises the existing 9 | % singleton*. 10 | % 11 | % H = CARID returns the handle to a new CARID or the handle to 12 | % the existing singleton*. 13 | % 14 | % CARID('CALLBACK',hObject,eventData,handles,...) calls the local 15 | % function named CALLBACK in CARID.M with the given input arguments. 16 | % 17 | % CARID('Property','Value',...) creates a new CARID or raises the 18 | % existing singleton*. Starting from the left, property value pairs are 19 | % applied to the GUI before CarId_OpeningFcn gets called. An 20 | % unrecognized property name or invalid value makes property application 21 | % stop. All inputs are passed to CarId_OpeningFcn via varargin. 22 | % 23 | % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one 24 | % instance to run (singleton)". 25 | % 26 | % See also: GUIDE, GUIDATA, GUIHANDLES 27 | 28 | % Edit the above text to modify the response to help CarId 29 | 30 | % Last Modified by GUIDE v2.5 01-Apr-2023 12:44:28 31 | 32 | % Begin initialization code - DO NOT EDIT 33 | gui_Singleton = 1; 34 | gui_State = struct('gui_Name', mfilename, ... 35 | 'gui_Singleton', gui_Singleton, ... %模式 36 | 'gui_OpeningFcn', @CarId_OpeningFcn, ... 37 | 'gui_OutputFcn', @CarId_OutputFcn, ... 38 | 'gui_LayoutFcn', [] , ... 39 | 'gui_Callback', []); 40 | if nargin && ischar(varargin{1}) 41 | gui_State.gui_Callback = str2func(varargin{1}); 42 | end 43 | 44 | if nargout 45 | [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); 46 | else 47 | gui_mainfcn(gui_State, varargin{:}); 48 | end 49 | % End initialization code - DO NOT EDIT 50 | %% 51 | % --- Executes just before CarId is made visible. 52 | function CarId_OpeningFcn(hObject, eventdata, handles, varargin) 53 | % This function has no output args, see OutputFcn. 54 | % hObject handle to figure 55 | % eventdata reserved - to be defined in a future version of MATLAB 56 | % handles structure with handles and user data (see GUIDATA) 57 | % varargin command line arguments to CarId (see VARARGIN) 58 | 59 | % Choose default command line output for CarId 60 | handles.output = hObject; 61 | 62 | 63 | %隐藏坐标轴 64 | set(handles.axes1,'visible','off'); 65 | set(handles.axes2,'visible','off'); 66 | set(handles.axes3,'visible','off'); 67 | set(handles.axes4,'visible','off'); 68 | set(handles.axes5,'visible','off'); 69 | set(handles.axes6,'visible','off'); 70 | set(handles.axes7,'visible','off'); 71 | set(handles.axes8,'visible','off'); 72 | set(handles.axes9,'visible','off'); 73 | set(handles.axes10,'visible','off'); 74 | set(handles.axes11,'visible','off'); 75 | set(handles.axes12,'visible','off'); 76 | set(handles.axes14,'visible','off'); 77 | 78 | 79 | % Update handles structure 80 | guidata(hObject, handles); 81 | 82 | % UIWAIT makes CarId wait for user response (see UIRESUME) 83 | % uiwait(handles.figure1); 84 | 85 | 86 | % --- Outputs from this function are returned to the command line. 87 | function varargout = CarId_OutputFcn(hObject, eventdata, handles) 88 | % varargout cell array for returning output args (see VARARGOUT); 89 | % hObject handle to figure 90 | % eventdata reserved - to be defined in a future version of MATLAB 91 | % handles structure with handles and user data (see GUIDATA) 92 | 93 | 94 | % Get default command line output from handles structure 95 | varargout{1} = handles.output; 96 | %% 97 | 98 | %======================my code========================% 99 | 100 | function openLocal_Callback(hObject,eventdata,handles) 101 | %关于uigetfile 102 | %打开一个模态对话框,其中列出了当前文件夹中的文件。用户可以在这里选择或输入文件的名称。如果文件存在并且有效,当用户点击打开时,uigetfile 103 | %将返回文件名。如果用户点击取消或窗口关闭按钮 (X),uigetfile 将返回 0。 104 | [filename, pathname]=uigetfile({'*.jpg; *.png; *.bmp; *.tif';'*.png';'All Image Files';'*.*'},'请选择图片路径'); 105 | if pathname==0 106 | return; 107 | end 108 | I=imread([pathname filename]); 109 | %显示原图 110 | axes(handles.axes1) %将Tag值为axes1的坐标轴置为当前 111 | imshow(I,[]); %解决图像太大无法显示的问题.why?貌似会自动缩放 112 | title('原图'); 113 | handles.I=I; %更新图像 114 | % Update handles structure 115 | guidata(hObject, handles); 116 | 117 | %% 功能开关选择 118 | function checkbox1_Callback(hObject, eventdata, handles) %#ok<*INUSD> 119 | if ( get(hObject,'Value') ) 120 | handles.FunctionSwitch= 1; %#ok<*NASGU> 121 | else 122 | handles.FunctionSwitch= 0; 123 | end 124 | guidata(hObject, handles); 125 | %% 126 | %下面在使用原图方法: handles.I 127 | %预处理 进行灰度处理和边缘检测 128 | function btnGray1_Callback(hObject, eventdata, handles) %#ok<*INUSL> 129 | I=handles.I; 130 | I = rgb2gray(I); 131 | axes(handles.axes2) %将Tag值为axes1的坐标轴置为当前 132 | imshow(I,[]); %解决图像太大无法显示的问题 133 | title('预灰度处理'); 134 | figure,imhist(I);title('灰度图直方图'); 135 | handles.gray1=I; %更新原图 136 | % Update handles structure 137 | guidata(hObject, handles); 138 | %% 139 | % 边缘检测. 140 | function btnEdge_Callback(hObject, eventdata, handles) 141 | I=handles.gray1; 142 | % 关于edge 143 | % 指定要检测的边缘的方向。Sobel 和 Prewitt 方法可以检测垂直方向和/或水平方向的边缘。 144 | % Roberts 方法可以检测与水平方向成 45 度角和/或 135 度角的边缘。 145 | % 第三个参数为二值化阈值,把比该值大的置为1 146 | % 仅当 method 是 'Sobel'、'Prewitt' 或 'Roberts' 时,此语法才有效。 147 | if handles.FunctionSwitch==1 148 | edit2_a=get(handles.edit2,'string'); 149 | edit2_aa=str2double(edit2_a); 150 | I = edge(I, 'Sobel', edit2_aa, 'both'); 151 | axes(handles.axes3) %将Tag值为axes1的坐标轴置为当前 152 | imshow(I,[]); %解决图像太大无法显示的问题. 153 | title('预处理边缘检测'); 154 | else 155 | axes(handles.axes3) %将Tag值为axes1的坐标轴置为当前 156 | imshow(I,[]); %解决图像太大无法显示的问题. 157 | title('跳过边缘检测'); 158 | end 159 | handles.edge=I; %更新原图 160 | % Update handles structure 161 | 162 | guidata(hObject, handles); 163 | %% 边缘检测参数调试 164 | function edit2_Callback(hObject, eventdata, handles) 165 | 166 | guidata(hObject, handles); 167 | %% 车牌定位 168 | % 图像腐蚀. 169 | function btnFushi_Callback(hObject, eventdata, handles) 170 | I=handles.edge; 171 | % 关于imerode() 腐蚀图像 172 | % J = imerode(I,SE) 腐蚀灰度图像、二值图像或压缩二值图像 I,返回腐蚀图像 J。 173 | % SE 是结构元素对象或结构元素对象的数组,由 strel 或 offsetstrel 函数返回。 174 | if handles.FunctionSwitch==1 175 | %se=[1;1;1]; 176 | edit3_a=get(handles.edit3,'string'); 177 | edit3_aa=round(str2double(edit3_a)); 178 | SE = strel('rectangle',[edit3_aa,1]); 179 | I = imerode(I, SE); 180 | axes(handles.axes4) %将Tag值为axes1的坐标轴置为当前 181 | imshow(I,[]); %解决图像太大无法显示的问题 182 | title('车牌定位图像腐蚀'); 183 | else 184 | axes(handles.axes4) %将Tag值为axes1的坐标轴置为当前 185 | imshow(I,[]); %解决图像太大无法显示的问题 186 | title('跳过图像腐蚀'); 187 | end 188 | handles.Fushi=I; %更新原图 189 | guidata(hObject, handles); 190 | 191 | %% 车牌定位 192 | % 平滑处理 193 | function btnSoft_Callback(hObject, eventdata, handles) 194 | I=handles.Fushi; 195 | % imclose函数,即闭运算:用结构元素对图像先膨胀,再腐蚀。 196 | % 闭运算可以用来融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙 197 | % 本部分的结构元素采用一个大小为 [n n] 的矩形结构 198 | if handles.FunctionSwitch==1 199 | edit4_a=get(handles.edit4,'string'); 200 | edit4_aa=round(str2double(edit4_a)); 201 | se = strel('rectangle', [edit4_aa, edit4_aa]); 202 | I = imclose(I, se); %使用闭运算进行平滑处理 203 | axes(handles.axes5) %将Tag值为axes1的坐标轴置为当前 204 | imshow(I,[]); %解决图像太大无法显示的问题 205 | title('车牌定位平滑处理'); 206 | else 207 | axes(handles.axes5) %将Tag值为axes1的坐标轴置为当前 208 | imshow(I,[]); %解决图像太大无法显示的问题 209 | title('跳过平滑处理'); 210 | end 211 | handles.Soft=I; %更新原图 212 | 213 | guidata(hObject, handles); 214 | 215 | %% 车牌定位 216 | % 移除对象 217 | function btnRemove_Callback(hObject, eventdata, handles) 218 | % bwareaopen 函数可以用于 从二值图像中删除小对象 219 | % 格式 BW2 = bwareaopen(BW,P) 从二值图像 BW 中删除少于 P 个像素的所有连通分量(对象), 220 | % 并生成另一个二值图像 BW2。此运算称为面积开运算。 221 | I=handles.Soft; 222 | if handles.FunctionSwitch==1 223 | edit5_a=get(handles.edit5,'string'); 224 | edit5_aa=double(str2double(edit5_a)) ; 225 | I = bwareaopen(I, edit5_aa); 226 | axes(handles.axes6) %将Tag值为axes6的坐标轴置为当前 227 | imshow(I,[]); %解决图像太大无法显示的问题. 228 | title('车牌定位移除对象'); 229 | else 230 | axes(handles.axes6) %将Tag值为axes6的坐标轴置为当前 231 | imshow(I,[]); %解决图像太大无法显示的问题. 232 | title('跳过移除对象'); 233 | end 234 | handles.Remove=I; %更新原图 235 | 236 | guidata(hObject, handles); 237 | 238 | %% 车牌定位 239 | % 定位剪切 240 | function btnCut_Callback(hObject, eventdata, handles) 241 | 242 | img7=handles.Remove; 243 | 244 | [y, x, z] = size(img7); 245 | img8 = double(img7); % 转成双精度浮点型 246 | 247 | % 车牌的蓝色区域 248 | % Y方向 249 | blue_Y = zeros(y, 1); 250 | for i = 1:y 251 | for j = 1:x 252 | if(img8(i, j) == 1) % 判断车牌位置区域 253 | blue_Y(i, 1) = blue_Y(i, 1) + 1; % 像素点统计 254 | end 255 | end 256 | end 257 | 258 | % 找到Y坐标的最小值 259 | img_Y1 = 1; 260 | while (blue_Y(img_Y1) < 5) && (img_Y1 < y) 261 | img_Y1 = img_Y1 + 1; 262 | end 263 | 264 | % 找到Y坐标的最大值 265 | img_Y2 = y; 266 | while (blue_Y(img_Y2) < 5) && (img_Y2 > img_Y1) 267 | img_Y2 = img_Y2 - 1; 268 | end 269 | 270 | % x方向 271 | blue_X = zeros(1, x); 272 | for j = 1:x 273 | for i = 1:y 274 | if(img8(i, j) == 1) % 判断车牌位置区域 275 | blue_X(1, j) = blue_X(1, j) + 1; 276 | end 277 | end 278 | end 279 | 280 | % 找到x坐标的最小值 281 | img_X1 = 1; 282 | while (blue_X(1, img_X1) < 5) && (img_X1 < x) 283 | img_X1 = img_X1 + 1; 284 | end 285 | 286 | % 找到x坐标的最小值 287 | img_X2 = x; 288 | while (blue_X(1, img_X2) < 5) && (img_X2 > img_X1) 289 | img_X2 = img_X2 - 1; 290 | end 291 | 292 | % 对图像进行裁剪 293 | img9 = handles.I(img_Y1:img_Y2, img_X1:img_X2, :); 294 | axes(handles.axes7) %将Tag值为axes1的坐标轴置为当前 295 | imshow(img9,[]); %解决图像太大无法显示的问题. 296 | title('图像裁剪'); 297 | % 保存提取出来的车牌图像 298 | imwrite(img9, '车牌图像.jpg'); 299 | handles.Cut=img9; %更新原图 300 | 301 | 302 | 303 | % 车牌颜色识别 304 | 305 | % 分离RGB通道 306 | r = img9(:,:,1); 307 | g = img9(:,:,2); 308 | b = img9(:,:,3); 309 | 310 | % 计算各通道的平均值 311 | mean_r = mean(r(:)); 312 | mean_g = mean(g(:)); 313 | mean_b = mean(b(:)); 314 | 315 | % 根据平均值进行颜色分类 316 | if mean_b > mean_g && mean_b > mean_r 317 | numberplate_color=1; 318 | color='蓝色'; 319 | disp('车牌颜色:蓝色'); 320 | msgbox('车牌颜色:蓝色','识别出的车牌颜色') 321 | elseif mean_g > mean_b && mean_g > mean_r 322 | numberplate_color=3; 323 | color='绿色'; 324 | disp('车牌颜色:绿色'); 325 | msgbox('车牌颜色:绿色','识别出的车牌颜色') 326 | elseif mean_r > 170 && mean_g > 170 && mean_b > 170 327 | numberplate_color=4; 328 | color='白色'; 329 | disp('车牌颜色:白色'); 330 | msgbox('车牌颜色:白色','识别出的车牌颜色') 331 | else 332 | numberplate_color=2; 333 | color='黄色'; 334 | disp('车牌颜色:黄色'); 335 | msgbox('车牌颜色:黄色','识别出的车牌颜色') 336 | end 337 | 338 | 339 | handles.numberplate_color=numberplate_color; 340 | handles.color=color; 341 | 342 | % Update handles structure 343 | guidata(hObject, handles); 344 | 345 | 346 | %% 车牌定位 347 | % 重新裁剪 348 | function re_split_Callback(hObject, eventdata, handles) 349 | I=handles.Cut; 350 | handles.I=I; %更新原图 351 | guidata(hObject, handles); 352 | 353 | %% 车牌识别 354 | % 灰度处理 355 | function btnGray2_Callback(hObject, eventdata, handles) 356 | 357 | I=handles.Cut; 358 | I = rgb2gray(I); 359 | axes(handles.axes8) %将Tag值为axes1的坐标轴置为当前 360 | imshow(I,[]); %解决图像太大无法显示的问题. 361 | title('车牌识别灰度处理'); 362 | handles.gray2=I; %更新原图 363 | 364 | guidata(hObject, handles); 365 | 366 | %% 车牌识别 367 | % 直方图均衡化 368 | function btnBalance_Callback(hObject, eventdata, handles) 369 | I=handles.gray2; 370 | % histeq 使用直方图均衡增强对比度 371 | % J = histeq(I,n) 变换灰度图像 I,以使输出灰度图像 J 具有 n 个 bin 的直方图大致平坦。 372 | % 当 n 远小于 I 中的离散灰度级数时,J 的直方图更平坦。 373 | if handles.FunctionSwitch==1 374 | edit6_a=get(handles.edit6,'string'); 375 | edit6_aa=double(str2double(edit6_a)); 376 | I = histeq(I,edit6_aa); 377 | axes(handles.axes9) %将Tag值为axes1的坐标轴置为当前 378 | imshow(I,[]); %解决图像太大无法显示的问题. 379 | title('车牌识别直方图均衡化'); 380 | figure,subplot(1,2,1),imhist(handles.gray2);title('灰度直方图'); 381 | subplot(1,2,2),imhist(I);title('均衡化后的直方图'); 382 | else 383 | axes(handles.axes9) %将Tag值为axes1的坐标轴置为当前 384 | imshow(I,[]); %解决图像太大无法显示的问题. 385 | title('跳过直方图均衡化'); 386 | end 387 | handles.balance=I; %更新原图 388 | 389 | guidata(hObject, handles); 390 | 391 | %% 车牌识别 392 | % 二值化图像 393 | function btnDouble_Callback(hObject, eventdata, handles) 394 | I=handles.balance; 395 | % imbinarize函数 通过阈值化将二维灰度图像或三维体二值化 396 | %通过将所有高于全局阈值的值替换为 1 并将所有其他值设置为 0,从二维或三维灰度图像 I 创建二值图像。 397 | % 默认情况下,imbinarize 使用 Otsu 方法,该方法选择特定阈值来最小化阈值化的黑白像素的类内方差 398 | % imbinarize(I,T) 使用阈值 T 从图像 I 创建二值图像。T 可以是指定为标量亮度值的全局图像阈值, 399 | % 也可以是指定为亮度值矩阵的局部自适应阈值 400 | edit8_a=get(handles.edit8,'string'); 401 | edit8_aa=double(str2double(edit8_a)); 402 | 403 | % 非蓝色车牌图像取反 404 | if handles.numberplate_color~=1 405 | I=imcomplement(I); 406 | end 407 | 408 | I = imbinarize(I, edit8_aa); 409 | axes(handles.axes10) %将Tag值为axes1的坐标轴置为当前 410 | imshow(I,[]); %解决图像太大无法显示的问题. 411 | title('车牌识别图像二值化'); 412 | handles.double=I; %更新原图 413 | 414 | guidata(hObject, handles); 415 | 416 | %% 车牌识别 417 | % 移除对象 418 | % --- Executes on button press in remove2. 419 | function remove2_Callback(hObject, eventdata, handles) 420 | % bwareaopen 函数可以用于 从二值图像中删除小对象 421 | % 格式 BW2 = bwareaopen(BW,P) 从二值图像 BW 中删除少于 P 个像素的所有连通分量(对象), 422 | % 并生成另一个二值图像 BW2。此运算称为面积开运算。 423 | I=handles.double; 424 | if handles.FunctionSwitch==1 425 | edit11_a=get(handles.edit11,'string'); 426 | edit11_aa=double(str2double(edit11_a)) ; 427 | I = bwareaopen(I, edit11_aa); 428 | axes(handles.axes11) %将Tag值为axes6的坐标轴置为当前 429 | imshow(I,[]); %解决图像太大无法显示的问题. 430 | title('车牌识别移除对象'); 431 | else 432 | axes(handles.axes11) %将Tag值为axes6的坐标轴置为当前 433 | imshow(I,[]); %解决图像太大无法显示的问题. 434 | title('跳过移除对象'); 435 | end 436 | handles.Remove2=I; %更新原图 437 | guidata(hObject, handles); 438 | 439 | 440 | %% 车牌识别 441 | % 中值滤波 442 | function btnMid_Callback(hObject, eventdata, handles) 443 | I=handles.Remove2; 444 | % medfilt2 二维中位数滤波 445 | % J = medfilt2(I,[m n]) 执行中位数滤波, 446 | % 其中每个输出像素包含输入图像中对应像素周围的 m×n 邻域中的中位数值。 447 | if handles.FunctionSwitch==1 448 | edit9_a=get(handles.edit9,'string'); 449 | edit9_aa=double(str2double(edit9_a)); 450 | I = medfilt2(I,[1 edit9_aa]); 451 | I = medfilt2(I,[edit9_aa 1 ]); 452 | axes(handles.axes12) %将Tag值为axes1的坐标轴置为当前 453 | imshow(I,[]); %解决图像太大无法显示的问题. 454 | imwrite(I,"中值滤波.jpg") 455 | title('车牌识别中值滤波'); 456 | else 457 | axes(handles.axes12) %将Tag值为axes1的坐标轴置为当前 458 | imshow(I,[]); %解决图像太大无法显示的问题. 459 | title('跳过中值滤波'); 460 | end 461 | handles.Mid=I; %更新原图 462 | 463 | guidata(hObject, handles); 464 | 465 | %% 车牌识别 466 | % 图像切割 467 | function btnCut2_Callback(hObject, eventdata, handles) 468 | I=handles.Mid; 469 | I = my_imsplit(I); %切割图像 470 | [m, n] = size(I); 471 | 472 | figure; 473 | imshow(I); 474 | 475 | s = sum(I); %sum(x)就是竖向相加,求每列的和,结果是行向量; 476 | j = 1; 477 | k1 = 1; 478 | k2 = 1; 479 | while j ~= n 480 | while s(j) == 0 481 | j = j + 1; 482 | end 483 | k1 = j; 484 | while s(j) ~= 0 && j <= n-1 485 | j = j + 1; 486 | end 487 | k2 = j + 1; 488 | if k2 - k1 > round(n / 6.5) 489 | [val, num] = min(sum(I(:, [k1+5:k2-5]))); 490 | I(:, k1+num+5) = 0; 491 | end 492 | end 493 | 494 | y1 = 10; %10 495 | y2 = 0.05; %0.25 496 | flag = 0; 497 | word1 = []; 498 | while flag == 0 499 | [m, n] = size(I); 500 | left = 1; 501 | width = 0; 502 | while sum(I(:, width+1)) ~= 0 || width y2 514 | flag = 1; 515 | word1 = temp; 516 | end 517 | I(:, [1:width]) = 0; 518 | I = my_imsplit(I); 519 | end 520 | end 521 | 522 | % 分割出第二个字符 523 | [word2,I]=getword(I); 524 | % 分割出第三个字符 525 | [word3,I]=getword(I); 526 | % 分割出第四个字符 527 | [word4,I]=getword(I); 528 | % 分割出第五个字符 529 | [word5,I]=getword(I); 530 | % 分割出第六个字符 531 | [word6,I]=getword(I); 532 | % 分割出第七个字符 533 | [word7,I]=getword(I); 534 | 535 | % 新能源汽车加一个字符 536 | if handles.numberplate_color==3 537 | [word8,I]=getword(I); 538 | end 539 | 540 | figure; 541 | 542 | word1=imresize(word1,[40 20]);%imresize对图像做缩放处理,常用调用格式为:B=imresize(A,ntimes,method);其中method可选nearest,bilinear(双线性),bicubic,box,lanczors2,lanczors3等 543 | word2=imresize(word2,[40 20]); 544 | word3=imresize(word3,[40 20]); 545 | word4=imresize(word4,[40 20]); 546 | word5=imresize(word5,[40 20]); 547 | word6=imresize(word6,[40 20]); 548 | word7=imresize(word7,[40 20]); 549 | 550 | 551 | if handles.numberplate_color==3 552 | word8=imresize(word8,[40 20]); 553 | end 554 | 555 | subplot(5,8,17),imshow(word1),title('1'); 556 | subplot(5,8,18),imshow(word2),title('2'); 557 | subplot(5,8,19),imshow(word3),title('3'); 558 | subplot(5,8,20),imshow(word4),title('4'); 559 | subplot(5,8,21),imshow(word5),title('5'); 560 | subplot(5,8,22),imshow(word6),title('6'); 561 | subplot(5,8,23),imshow(word7),title('7'); 562 | 563 | 564 | if handles.numberplate_color==3 565 | subplot(5,8,24),imshow(word8),title('8'); 566 | end 567 | 568 | imwrite(word1,'1.jpg'); % 创建七位车牌字符图像 569 | imwrite(word2,'2.jpg'); 570 | imwrite(word3,'3.jpg'); 571 | imwrite(word4,'4.jpg'); 572 | imwrite(word5,'5.jpg'); 573 | imwrite(word6,'6.jpg'); 574 | imwrite(word7,'7.jpg'); 575 | 576 | 577 | if handles.numberplate_color==3 578 | imwrite(word8,'8.jpg'); 579 | end 580 | 581 | %% 车牌识别 582 | % 算法选择 583 | % --- Executes when selected object is changed in uibuttongroup5. 584 | function uibuttongroup5_SelectionChangedFcn(hObject, eventdata, handles) 585 | strr=get(hObject,'tag'); 586 | switch strr 587 | case 'radiobutton1' 588 | handles.algorithm=1; 589 | 590 | case 'radiobutton2' 591 | handles.algorithm=2; 592 | end 593 | guidata(hObject, handles); 594 | 595 | 596 | %% 车牌识别 597 | % 模板匹配 598 | function btnSelect_Callback(hObject, eventdata, handles) 599 | % liccode=char(['0':'9' 'A':'H' 'J':'N' 'P':'Z' '鲁京粤']);%建立自动识别字符代码表;'鲁 600 | % liccode=char(['0':'9' 'A':'Z' '川鄂赣贵桂黑沪吉冀津晋京警辽鲁蒙闽宁陕苏皖湘豫粤浙']);%建立自动识别字符代码表;'京津沪渝港澳吉辽鲁豫冀鄂湘晋青皖苏赣浙闽粤琼台陕甘云川贵黑藏蒙桂新宁' 601 | liccode=char(['0':'9' 'A':'S' 'U':'Z' '川贵黑京警鲁蒙闽苏豫粤浙']);%建立自动识别字符代码表;'京津沪渝港澳吉辽鲁豫冀鄂湘晋青皖苏赣浙闽粤琼台陕甘云川贵黑藏蒙桂新宁' 602 | 603 | subBw2 = zeros(40, 20); 604 | num = 1; % 车牌位数 605 | 606 | % 判断车牌位数 607 | if handles.numberplate_color==3 608 | car_size=8; 609 | else 610 | car_size=7; 611 | end 612 | 613 | for i = 1:car_size 614 | ii = int2str(i); % 将整型数据转换为字符串型数据 615 | word = imread([ii,'.jpg']); % 读取之前分割出的字符的图片 616 | segBw2 = imresize(word, [40,20], 'nearest'); % 调整图片的大小 617 | segBw2 = imbinarize(segBw2, 0.5); % 图像二值化 618 | if i == 1 % 字符第一位为汉字,定位汉字所在字段 619 | kMin = 36; 620 | kMax = 47; 621 | elseif i == 2 % 第二位为英文字母,定位字母所在字段 622 | kMin = 11; 623 | kMax = 35; 624 | elseif i >= 3 % 第三位开始就是数字或字母了,定位数字和字母所在字段 625 | kMin = 1; 626 | kMax = 35; 627 | end 628 | 629 | l = 1; 630 | disp(kMin); 631 | disp(kMax); 632 | for k = kMin : kMax 633 | fname = strcat('model\',liccode(k),'.jpg'); % 根据字符库找到图片模板 634 | samBw2 = imread(fname); % 读取模板库中的图片 635 | samBw2 = imbinarize(samBw2, 0.5); % 图像二值化 636 | 637 | % 将待识别图片与模板图片做差 638 | for i1 = 1:40 639 | for j1 = 1:20 640 | subBw2(i1, j1) = segBw2(i1, j1) - samBw2(i1 ,j1); 641 | end 642 | end 643 | 644 | % 统计两幅图片不同点的个数,并保存下来 645 | Dmax = 0; 646 | for i2 = 1:40 647 | for j2 = 1:20 648 | if subBw2(i2, j2) ~= 0 649 | Dmax = Dmax + 1; 650 | end 651 | end 652 | end 653 | error(l) = Dmax; 654 | l = l + 1; 655 | disp(Dmax); 656 | disp(liccode(k)); 657 | disp(fname); 658 | end 659 | 660 | % 找到图片差别最少的图像 661 | errorMin = min(error); 662 | disp(errorMin); 663 | findc = find(error == errorMin); 664 | % error 665 | % findc 666 | 667 | % 根据字库,对应到识别的字符 668 | Code(num) = liccode(findc(1) + kMin - 1); 669 | num = num + 1; 670 | % 白色警车 671 | if handles.numberplate_color==4 672 | Code(7) = '警'; 673 | end 674 | 675 | end 676 | 677 | handles.CodeID=Code; 678 | axes(handles.axes14) %将Tag值为axes1的坐标轴置为当前 679 | imshow(handles.Cut,[]); %解决图像太大无法显示的问题. 680 | title('车牌'); 681 | 682 | if handles.FunctionSwitch==1 683 | % [IDCP,IDNUM,IDNAME]=IDFind(Code); 684 | msg = ['车牌号:', Code, ', 这是一张', handles.color, '车牌']; 685 | msgbox(msg,'识别出的车牌号'); 686 | disp(Code); 687 | else 688 | msgbox('车牌号:', Code, ', 这是一张', handles.color, '车牌', '识别出的车牌号'); 689 | disp(Code); 690 | end 691 | 692 | % % 显示识别结果 693 | % if handles.FunctionSwitch==1 694 | % [IDCP,IDNUM,IDNAME]=IDFind(Code); 695 | % msg = ['车牌号:', IDCP, ', 这是一张', handles.color, '车牌']; 696 | % msgbox(msg,'识别出的车牌号'); 697 | % disp(IDCP); 698 | % else 699 | % msgbox('车牌号:', Code, ', 这是一张', handles.color, '车牌', '识别出的车牌号'); 700 | % disp(IDCP); 701 | % end 702 | guidata(hObject, handles); 703 | 704 | 705 | 706 | 707 | 708 | %% 709 | %========================follow is Menu============================== 710 | 711 | 712 | % -------------------------------------------------------------------- 713 | function Exit_Callback(hObject, eventdata, handles) 714 | % hObject handle to Exit (see GCBO) 715 | % eventdata reserved - to be defined in a future version of MATLAB 716 | % handles structure with handles and user data (see GUIDATA) 717 | close(gcf) 718 | 719 | % -------------------------------------------------------------------- 720 | function ReStart_Callback(hObject, eventdata, handles) 721 | 722 | 723 | 724 | % -------------------------------------------------------------------- 725 | function Auther_Callback(hObject, eventdata, handles) 726 | 727 | 728 | % -------------------------------------------------------------------- 729 | function Block_Callback(hObject, eventdata, handles) 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | % --- Executes during object creation, after setting all properties. 738 | function edit2_CreateFcn(hObject, eventdata, handles) 739 | % hObject handle to edit2 (see GCBO) 740 | % eventdata reserved - to be defined in a future version of MATLAB 741 | % handles empty - handles not created until after all CreateFcns called 742 | 743 | % Hint: edit controls usually have a white background on Windows. 744 | % See ISPC and COMPUTER. 745 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 746 | set(hObject,'BackgroundColor','white'); 747 | end 748 | 749 | 750 | 751 | function edit3_Callback(hObject, eventdata, handles) 752 | % hObject handle to edit3 (see GCBO) 753 | % eventdata reserved - to be defined in a future version of MATLAB 754 | % handles structure with handles and user data (see GUIDATA) 755 | 756 | % Hints: get(hObject,'String') returns contents of edit3 as text 757 | % str2double(get(hObject,'String')) returns contents of edit3 as a double 758 | 759 | 760 | % --- Executes during object creation, after setting all properties. 761 | function edit3_CreateFcn(hObject, eventdata, handles) 762 | % hObject handle to edit3 (see GCBO) 763 | % eventdata reserved - to be defined in a future version of MATLAB 764 | % handles empty - handles not created until after all CreateFcns called 765 | 766 | % Hint: edit controls usually have a white background on Windows. 767 | % See ISPC and COMPUTER. 768 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 769 | set(hObject,'BackgroundColor','white'); 770 | end 771 | 772 | 773 | 774 | function edit4_Callback(hObject, eventdata, handles) 775 | % hObject handle to edit4 (see GCBO) 776 | % eventdata reserved - to be defined in a future version of MATLAB 777 | % handles structure with handles and user data (see GUIDATA) 778 | 779 | % Hints: get(hObject,'String') returns contents of edit4 as text 780 | % str2double(get(hObject,'String')) returns contents of edit4 as a double 781 | 782 | 783 | % --- Executes during object creation, after setting all properties. 784 | function edit4_CreateFcn(hObject, eventdata, handles) 785 | % hObject handle to edit4 (see GCBO) 786 | % eventdata reserved - to be defined in a future version of MATLAB 787 | % handles empty - handles not created until after all CreateFcns called 788 | 789 | % Hint: edit controls usually have a white background on Windows. 790 | % See ISPC and COMPUTER. 791 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 792 | set(hObject,'BackgroundColor','white'); 793 | end 794 | 795 | 796 | 797 | function edit5_Callback(hObject, eventdata, handles) 798 | % hObject handle to edit5 (see GCBO) 799 | % eventdata reserved - to be defined in a future version of MATLAB 800 | % handles structure with handles and user data (see GUIDATA) 801 | 802 | % Hints: get(hObject,'String') returns contents of edit5 as text 803 | % str2double(get(hObject,'String')) returns contents of edit5 as a double 804 | 805 | 806 | % --- Executes during object creation, after setting all properties. 807 | function edit5_CreateFcn(hObject, eventdata, handles) 808 | % hObject handle to edit5 (see GCBO) 809 | % eventdata reserved - to be defined in a future version of MATLAB 810 | % handles empty - handles not created until after all CreateFcns called 811 | 812 | % Hint: edit controls usually have a white background on Windows. 813 | % See ISPC and COMPUTER. 814 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 815 | set(hObject,'BackgroundColor','white'); 816 | end 817 | 818 | 819 | 820 | function edit6_Callback(hObject, eventdata, handles) 821 | % hObject handle to edit6 (see GCBO) 822 | % eventdata reserved - to be defined in a future version of MATLAB 823 | % handles structure with handles and user data (see GUIDATA) 824 | 825 | % Hints: get(hObject,'String') returns contents of edit6 as text 826 | % str2double(get(hObject,'String')) returns contents of edit6 as a double 827 | 828 | 829 | % --- Executes during object creation, after setting all properties. 830 | function edit6_CreateFcn(hObject, eventdata, handles) 831 | % hObject handle to edit6 (see GCBO) 832 | % eventdata reserved - to be defined in a future version of MATLAB 833 | % handles empty - handles not created until after all CreateFcns called 834 | 835 | % Hint: edit controls usually have a white background on Windows. 836 | % See ISPC and COMPUTER. 837 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 838 | set(hObject,'BackgroundColor','white'); 839 | end 840 | 841 | 842 | 843 | function edit8_Callback(hObject, eventdata, handles) 844 | % hObject handle to edit8 (see GCBO) 845 | % eventdata reserved - to be defined in a future version of MATLAB 846 | % handles structure with handles and user data (see GUIDATA) 847 | 848 | % Hints: get(hObject,'String') returns contents of edit8 as text 849 | % str2double(get(hObject,'String')) returns contents of edit8 as a double 850 | 851 | 852 | % --- Executes during object creation, after setting all properties. 853 | function edit8_CreateFcn(hObject, eventdata, handles) 854 | % hObject handle to edit8 (see GCBO) 855 | % eventdata reserved - to be defined in a future version of MATLAB 856 | % handles empty - handles not created until after all CreateFcns called 857 | 858 | % Hint: edit controls usually have a white background on Windows. 859 | % See ISPC and COMPUTER. 860 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 861 | set(hObject,'BackgroundColor','white'); 862 | end 863 | 864 | 865 | 866 | function edit9_Callback(hObject, eventdata, handles) 867 | % hObject handle to edit9 (see GCBO) 868 | % eventdata reserved - to be defined in a future version of MATLAB 869 | % handles structure with handles and user data (see GUIDATA) 870 | 871 | % Hints: get(hObject,'String') returns contents of edit9 as text 872 | % str2double(get(hObject,'String')) returns contents of edit9 as a double 873 | 874 | 875 | % --- Executes during object creation, after setting all properties. 876 | function edit9_CreateFcn(hObject, eventdata, handles) 877 | % hObject handle to edit9 (see GCBO) 878 | % eventdata reserved - to be defined in a future version of MATLAB 879 | % handles empty - handles not created until after all CreateFcns called 880 | 881 | % Hint: edit controls usually have a white background on Windows. 882 | % See ISPC and COMPUTER. 883 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 884 | set(hObject,'BackgroundColor','white'); 885 | end 886 | 887 | 888 | 889 | function edit10_Callback(hObject, eventdata, handles) 890 | % hObject handle to edit10 (see GCBO) 891 | % eventdata reserved - to be defined in a future version of MATLAB 892 | % handles structure with handles and user data (see GUIDATA) 893 | 894 | % Hints: get(hObject,'String') returns contents of edit10 as text 895 | % str2double(get(hObject,'String')) returns contents of edit10 as a double 896 | 897 | 898 | % --- Executes during object creation, after setting all properties. 899 | function edit10_CreateFcn(hObject, eventdata, handles) 900 | % hObject handle to edit10 (see GCBO) 901 | % eventdata reserved - to be defined in a future version of MATLAB 902 | % handles empty - handles not created until after all CreateFcns called 903 | 904 | % Hint: edit controls usually have a white background on Windows. 905 | % See ISPC and COMPUTER. 906 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 907 | set(hObject,'BackgroundColor','white'); 908 | end 909 | 910 | 911 | 912 | function edit11_Callback(hObject, eventdata, handles) 913 | % hObject handle to edit11 (see GCBO) 914 | % eventdata reserved - to be defined in a future version of MATLAB 915 | % handles structure with handles and user data (see GUIDATA) 916 | 917 | % Hints: get(hObject,'String') returns contents of edit11 as text 918 | % str2double(get(hObject,'String')) returns contents of edit11 as a double 919 | 920 | 921 | % --- Executes during object creation, after setting all properties. 922 | function edit11_CreateFcn(hObject, eventdata, handles) 923 | % hObject handle to edit11 (see GCBO) 924 | % eventdata reserved - to be defined in a future version of MATLAB 925 | % handles empty - handles not created until after all CreateFcns called 926 | 927 | % Hint: edit controls usually have a white background on Windows. 928 | % See ISPC and COMPUTER. 929 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 930 | set(hObject,'BackgroundColor','white'); 931 | end 932 | 933 | 934 | 935 | function edit12_Callback(hObject, eventdata, handles) 936 | % hObject handle to edit12 (see GCBO) 937 | % eventdata reserved - to be defined in a future version of MATLAB 938 | % handles structure with handles and user data (see GUIDATA) 939 | 940 | % Hints: get(hObject,'String') returns contents of edit12 as text 941 | % str2double(get(hObject,'String')) returns contents of edit12 as a double 942 | 943 | 944 | % --- Executes during object creation, after setting all properties. 945 | function edit12_CreateFcn(hObject, eventdata, handles) 946 | % hObject handle to edit12 (see GCBO) 947 | % eventdata reserved - to be defined in a future version of MATLAB 948 | % handles empty - handles not created until after all CreateFcns called 949 | 950 | % Hint: edit controls usually have a white background on Windows. 951 | % See ISPC and COMPUTER. 952 | if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) 953 | set(hObject,'BackgroundColor','white'); 954 | end 955 | 956 | guidata(hObject, handles); 957 | 958 | 959 | -------------------------------------------------------------------------------- /License_plate_recognition/CarId_App.mlapp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/CarId_App.mlapp -------------------------------------------------------------------------------- /License_plate_recognition/getword.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/getword.m -------------------------------------------------------------------------------- /License_plate_recognition/model/0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/0.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/1.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/2.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/3.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/4.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/5.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/6.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/7.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/8.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/9.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/A.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/A.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/B.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/B.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/C.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/C.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/D.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/D.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/E.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/E.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/F.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/F.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/G.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/G.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/H.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/H.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/I.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/I.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/J.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/J.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/K.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/K.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/L.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/L.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/M.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/M.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/N.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/N.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/O.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/O.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/P.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/P.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/Q.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/Q.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/R.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/R.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/S.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/S.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/T.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/T.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/U.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/U.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/V.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/V.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/W.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/W.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/X.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/X.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/Y.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/Y.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/Z.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/Z.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/京.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/京.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/冀.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/冀.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/吉.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/吉.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/宁.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/宁.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/川.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/川.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/晋.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/晋.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/津.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/津.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/浙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/浙.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/湘.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/湘.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/皖.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/皖.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/粤.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/粤.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/苏.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/苏.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/蒙.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/蒙.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/警.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/警.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/豫.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/豫.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/贵.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/贵.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/赣.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/赣.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/辽.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/辽.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/闽.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/闽.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/陕.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/陕.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/鲁.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/鲁.jpg -------------------------------------------------------------------------------- /License_plate_recognition/model/黑.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/model/黑.jpg -------------------------------------------------------------------------------- /License_plate_recognition/my_imsplit.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/my_imsplit.m -------------------------------------------------------------------------------- /License_plate_recognition/中值滤波.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/中值滤波.jpg -------------------------------------------------------------------------------- /License_plate_recognition/车牌图像.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌图像.jpg -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/b1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/b1.jpg -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/b1参数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/b1参数.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/b2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/b2.jpg -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/b2参数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/b2参数.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/carg2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/carg2.jpg -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/g1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/g1.jpg -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/g1参数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/g1参数.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/g2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/g2.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/g2参数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/g2参数.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/w1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/w1.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/w1参数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/w1参数.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/y1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/y1.png -------------------------------------------------------------------------------- /License_plate_recognition/车牌库/y1参数.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Evanhhhh/License_plate_recognition/e214935a6322f272de1aecf540d24b4b81032e39/License_plate_recognition/车牌库/y1参数.png --------------------------------------------------------------------------------