% ******************************************************
% auther: 星火燎原研发中心
% time : 2021/6/30 19:56
% tip : 车牌识别
% change:
% *******************************************************
function varargout = CarId(varargin)
% CARID MATLAB code for CarId.fig
% CARID, by itself, creates a new CARID or raises the existing
% singleton*.
%
% H = CARID returns the handle to a new CARID or the handle to
% the existing singleton*.
%
% CARID('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in CARID.M with the given input arguments.
%
% CARID('Property','Value',...) creates a new CARID or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before CarId_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to CarId_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help CarId
% Last Modified by GUIDE v2.5 11-Jul-2021 07:40:53
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ... %模式
'gui_OpeningFcn', @CarId_OpeningFcn, ...
'gui_OutputFcn', @CarId_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
%%
% --- Executes just before CarId is made visible.
function CarId_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to CarId (see VARARGIN)
% Choose default command line output for CarId
handles.output = hObject;
%隐藏坐标轴
set(handles.axes1,'visible','off');
set(handles.axes2,'visible','off');
set(handles.axes3,'visible','off');
set(handles.axes4,'visible','off');
set(handles.axes5,'visible','off');
set(handles.axes6,'visible','off');
set(handles.axes7,'visible','off');
set(handles.axes8,'visible','off');
set(handles.axes9,'visible','off');
set(handles.axes10,'visible','off');
set(handles.axes11,'visible','off');
set(handles.axes12,'visible','off');
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes CarId wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = CarId_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%%
%%
%======================my code========================%
% tip : 被删除的callback自己手动添加一下...55555.....
function openLocal_Callback(hObject,eventdata,handles)
%关于uigetfile
%打开一个模态对话框,其中列出了当前文件夹中的文件。用户可以在这里选择或输入文件的名称。如果文件存在并且有效,当用户点击打开时,uigetfile
%将返回文件名。如果用户点击取消或窗口关闭按钮 (X),uigetfile 将返回 0。
[filename, pathname]=uigetfile({'*.jpg; *.png; *.bmp; *.tif';'*.png';'All Image Files';'*.*'},'请选择图片路径');
if pathname==0
return;
end
I=imread([pathname filename]);
%显示原图
axes(handles.axes1) %将Tag值为axes1的坐标轴置为当前
imshow(I,[]); %解决图像太大无法显示的问题.why?貌似会自动缩放
title('原图');
handles.I=I; %更新图像
% Update handles structure
guidata(hObject, handles);
%% 功能开关选择
function checkbox1_Callback(hObject, eventdata, handles) %#ok<*INUSD>
if ( get(hObject,'Value') )
handles.FunctionSwitch= 1; %#ok<*NASGU>
else
handles.FunctionSwitch= 0;
end
guidata(hObject, handles);
%%
%下面在使用原图方法: handles.I
%预处理 进行灰度处理和边缘检测
function btnGray1_Callback(hObject, eventdata, handles) %#ok<*INUSL>
I=handles.I;
I = rgb2gray(I);
axes(handles.axes2) %将Tag值为axes1的坐标轴置为当前
imshow(I,[]); %解决图像太大无法显示的问题
title('预灰度处理');
figure,imhist(I);title('灰度图直方图');
handles.gray1=I; %更新原图
% Update handles structure
guidata(hObject, handles);
%%
% 边缘检测.
function btnEdge_Callback(hObject, eventdata, handles)
I=handles.gray1;
% 关于edge
% 指定要检测的边缘的方向。Sobel 和 Prewitt 方法可以检测垂直方向和/或水平方向的边缘。
% Roberts 方法可以检测与水平方向成 45 度角和/或 135 度角的边缘。
% 第三个参数为二值化阈值,把比该值大的置为1
% 仅当 method 是 'Sobel'、'Prewitt' 或 'Roberts' 时,此语法才有效。
if handles.FunctionSwitch==1
edit2_a=get(handles.edit2,'string');
edit2_aa=str2double(edit2_a);
I = edge(I, 'Sobel', edit2_aa, 'both');
axes(handles.axes3) %将Tag值为axes1的坐标轴置为当前
imshow(I,[]); %解决图像太大无法显示的问题.
title('预处理边缘检测');
else
axes(handles.axes3) %将Tag值为axes1的坐标轴置为当前
imshow(I,[]); %解决图像太大无法显示的问题.
title('跳过边缘检测');
end
handles.edge=I; %更新原图
% Update handles structure
guidata(hObject, handles);
%% 边缘检测参数调试
function edit2_Callback(hObject, eventdata, handles)
guidata(hObject, handles);
%% 车牌定位
% 图像腐蚀.
function btnFushi_Callback(hObject, eventdata, handles)
I=handles.edge;
% 关于imerode() 腐蚀图像
% J = imerode(I,SE) 腐蚀灰度图像、二值图像或压缩二值图像 I,返回腐蚀图像 J。
% SE 是结构元素对象或结构元素对象的数组,由 strel 或 offsetstrel 函数返回。
if handles.FunctionSwitch==1
%se=[1;1;1];
edit3_a=get(handles.edit3,'string');
edit3_aa=round(str2double(edit3_a));
SE = strel('rectangle',[edit3_aa,1]);
I = imerode(I, SE);
axes(handles.axes4) %将Tag值为axes1的坐标轴置为当前
imshow(I,[]); %解决图像太大无法显示的问题
title('车牌定位图像腐蚀');
else
axes(handles.axes4) %将Tag值为axes1的坐标轴置为当前
imshow(I,[]); %解决图像太大无法显示的问题
title('跳过图像腐蚀');
end
handles.Fushi=I; %更新原图
guidata(hObject, handles);
%% 车牌定位
% 平滑处理
function btnSoft_Callback(hObject, eventdata, handles)
I=handles.Fushi;
% imclose函数,即闭运算:用结构元素对图像先膨胀,再腐蚀。
% 闭运算可以用来融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙
% 本部分的结构元素采用一个大小为 [n n] 的矩形结构
if handles.FunctionSwitch==1
edit4_a=get(handles.edit4,'string');
edit4_aa=round(str2double(edit4_a));
se = strel('rectangle', [edit4_aa, edit4_aa]);
I = imclose(I, se); %使用闭运算进行平滑处理
axes(handles.axes5) %将Tag值为axes1�
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于matlab的车牌识别算法整个工程 (409个子文件)
main.m.bak 6KB
car3.bmp 1.45MB
Thumbs.db 178KB
CarId.fig 361KB
gui2.fig 45KB
zxing-core-1.7.jar 344KB
zxing-j2se-1.7.jar 22KB
timg.jpg 60KB
car2.jpg 58KB
QQ图片20220306190842.jpg 46KB
QQ图片20220306171052.jpg 36KB
QQ图片20220306171856.jpg 31KB
car16.jpg 26KB
车牌图像.jpg 26KB
杞︾墝鍥惧儚.jpg 26KB
qr.jpg 25KB
car1.jpg 22KB
ZZLB.jpg 20KB
京.jpg 14KB
辽.jpg 14KB
辽.jpg 14KB
辽.jpg 14KB
S.jpg 12KB
S.jpg 12KB
S.jpg 12KB
Q.jpg 12KB
2.jpg 12KB
2.jpg 12KB
2.jpg 12KB
X.jpg 12KB
5.jpg 12KB
5.jpg 12KB
R.jpg 12KB
R.jpg 12KB
R.jpg 12KB
W.jpg 12KB
W.jpg 12KB
G.jpg 12KB
G.jpg 12KB
G.jpg 12KB
O.jpg 12KB
O.jpg 12KB
O.jpg 12KB
N.jpg 12KB
N.jpg 12KB
Z.jpg 12KB
Z.jpg 12KB
Z.jpg 12KB
D.jpg 12KB
U.jpg 12KB
U.jpg 12KB
U.jpg 12KB
4.jpg 12KB
4.jpg 12KB
4.jpg 12KB
E.jpg 12KB
E.jpg 12KB
E.jpg 12KB
F.jpg 11KB
F.jpg 11KB
F.jpg 11KB
1.jpg 11KB
I.jpg 11KB
I.jpg 11KB
I.jpg 11KB
T.jpg 11KB
T.jpg 11KB
T.jpg 11KB
L.jpg 11KB
2.车牌二值图像.jpg 7KB
5.膨胀或腐蚀处理后.jpg 6KB
4.均值滤波后.jpg 6KB
1.车牌灰度图像.jpg 5KB
二值化.jpg 4KB
QRIMG.jpg 4KB
膨胀.jpg 4KB
QQ图片20220306200035.jpg 3KB
QQ图片20220306200042.jpg 2KB
膨胀或腐蚀后.jpg 2KB
均值滤波.jpg 2KB
车牌二值化图像.jpg 2KB
dw.jpg 2KB
灰度车牌.jpg 1KB
中.jpg 930B
豫.jpg 918B
豫.jpg 918B
豫.jpg 918B
贵.jpg 898B
贵.jpg 898B
鲁.jpg 895B
鲁.jpg 895B
京.jpg 890B
京.jpg 890B
146.jpg 887B
B.jpg 884B
166.jpg 883B
176.jpg 881B
154.jpg 878B
142.jpg 876B
8.jpg 876B
共 409 条
- 1
- 2
- 3
- 4
- 5
资源评论
qq_44985628
- 粉丝: 8136
- 资源: 23
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功