function varargout = Traffic_Iden(varargin)
% TRAFFIC_IDEN本身就创造了一个新的TRAFFIC_IDEN或提高了现有的单例
% H=TRAFFIC_IDEN将句柄返回到新的TRAFFIC_IDEN或返回到现有单例的句柄
% 函数名为CALLLBA CK在TRAFFIC_IDEN中.M 具有给定输入参数的。
% TRAFFIC_IDEN(‘Property’,‘Value’,...)创建一个新的TRAFFIC_IDEN或提高现有的单例*。
% 从左边开始,属性值对在Traffic_Iden_OpeningFcn被调用之前应用到GUI。
% 无法识别的属性名称或无效值使属性应用程序停止。 所有输入都通过varargin传递给Traffic_Iden_OpeningFcn。
% 请参阅指南工具菜单上的GUI选项。 选择“GUI只允许运行一个实例(单例)
% 编辑上述文本以修改响应以帮助Traffic_Iden
%开始初始化代码-不要编辑
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Traffic_Iden_OpeningFcn, ...
'gui_OutputFcn', @Traffic_Iden_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
% 在Traffic_Iden变得可见之前执行
function Traffic_Iden_OpeningFcn(hObject, eventdata, handles, varargin)
% .此函数没有输出args,请参见输出FCN
% hObject 图的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
% varargin Traffic_Iden的命令行参数(见VARARGIN)
% 选择Traffic_Iden的默认命令行输出
handles.output = hObject;
handles.cd0 = cd;
handles.Color = 0;
handles.I = [];
axes(handles.axes1);
set(gca,'Xtick',[]);%去除x轴的刻度
set(gca,'Ytick',[]);%去除y轴的刻度
box on;
axes(handles.axes2);
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
box on;
axes(handles.axes3);
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
box on;
axes(handles.axes4);
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
box on;
% 更新句柄结构
guidata(hObject, handles);
%UIWA IT使Traffic_Iden等待用户响应(参见UIRESUME)
% uiwait(handles.figure1);
% 此函数的输出返回到命令行
function varargout = Traffic_Iden_OutputFcn(hObject, eventdata, handles)
% varargout 用于返回输出arg的vargout单元数组
% hObject 图的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
% 获取句柄结构中的默认命令行
varargout{1} = handles.output;
% 按单选按钮3中的按钮执行。
function radiobutton3_Callback(hObject, eventdata, handles)
% hObject 单选按钮3的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
%提示:get(hObject,‘Value’)返回单选按钮3的切换状态
% 按单选按钮4中的按钮执行。
function radiobutton4_Callback(hObject, eventdata, handles)
% hObject 单选按钮4的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
%提示:get(hObject,‘Value’)返回单选按钮4的切换状态
% 按单选按钮5中的按钮执行
function radiobutton5_Callback(hObject, eventdata, handles)
% hObject 单选按钮5的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of radiobutton5
%执行按钮按下按钮1。
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject 按钮1的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
%% 读图
[filename, cd1] = uigetfile( ...
{'*.tif;*.TIF;*.JPG;*.jpg;*.bmp;*.BMP;*.jpeg;*.JPEG;','Image file';...
'*.*', 'All file (*.*)'},'Pick an Image');
axes(handles.axes1);
cla;%清除坐标系,相当于初始化axes
axes(handles.axes2);
cla;
axes(handles.axes3);
cla;
axes(handles.axes4);
cla;
if filename
cd(cd1);%目录
d = imread(filename);%获取图片数据
cd(handles.cd0);
handles.I = d;
axes(handles.axes1);%创建坐标系
imshow(d);%显示灰度图
handles.filename = filename;
box on;%显示右边和上边框
end
handles.Color = 0;
cd(handles.cd0);
set(handles.text2,'string','');
guidata(hObject, handles);
% 执行按钮按下按钮2。
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject 按钮2的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
%% 提取标志
% 按照颜色来分
Color = 0; % 颜色标记 1是红 2 是蓝 3是黄色
if get(handles.radiobutton3,'Value')
Color = 1;
elseif get(handles.radiobutton4,'Value')
Color = 2;
elseif get(handles.radiobutton5,'Value')
Color = 3;
end
handles.Color = Color;
Image = handles.I;
switch Color
case 1 %红
DI = Image(:,:,1);%灰度图
GI = (Image(:,:,1)>110 & Image(:,:,2)<150 & Image(:,:,3)<150 ...
& abs(double(Image(:,:,2))-double(Image(:,:,3)))<50 & abs(double(Image(:,:,1))-double(Image(:,:,2)))>30);
%二值图
case 2 %蓝
DI = Image(:,:,3);
GI = (Image(:,:,1)<100 & Image(:,:,2)<150 & Image(:,:,3)>120 ...
& abs(double(Image(:,:,2))-double(Image(:,:,3)))>30);
case 3 %黄
DI = rgb2gray(Image); %灰度图
GI = (Image(:,:,1)>160 & Image(:,:,2)>90 & Image(:,:,3)<90 ...
& abs(double(Image(:,:,1))-double(Image(:,:,2)))<100 & abs(double(Image(:,:,1))-double(Image(:,:,3)))>90);
end
axes(handles.axes2);
imshow(DI);
axes(handles.axes3);
imshow(GI);
handles.GI = GI;
guidata(hObject, handles);
% 执行按钮按下按钮3。
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject 按钮3的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
str1=sprintf('思路\n\n');
str2=sprintf('欢迎沟通交流Q:3752243968\n');
string=[str1 str2];
msgbox(string,'温馨提示','none');
% 执行按钮按下按钮4。
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject 按钮4的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
%% 这个按钮关闭软件
close all;
clear;
clc;
% 执行按钮按下按钮5。
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject 按钮5的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles 具有句柄和用户数据的结构(参见GUIDATA)
%% 识别按钮
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
54 交通信号标志识别13个标志.zip (26个子文件)
54 交通信号标志识别13个标志
Trained_BP.mat 13KB
Name.mat 340B
BP_Prince.m 367B
Traffic_Iden.fig 71KB
Traffic_Iden.m 6KB
0识别结果图.png 297KB
1
10.png 56KB
9.png 28KB
3.png 29KB
12.png 40KB
1.png 53KB
11.png 44KB
13.png 68KB
6.png 19KB
5.png 65KB
4.png 72KB
8.png 105KB
7.png 40KB
2.png 103KB
Data.mat 2KB
交通标志照片
指示类
警示类
禁止类
限高4.5米.jpg 56KB
禁止超车.jpg 153KB
禁止机动车通行.jpg 323KB
禁止行人进入.jpg 145KB
禁止停车.jpg 159KB
限速40.jpg 233KB
共 26 条
- 1
资源评论
Matlab程序设计
- 粉丝: 15
- 资源: 105
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功