deep learning 利用MATLAB制作GUI的数字识别可视化界面
2014-11-05 10:14
399 查看
在前面几节讲过一些简单的深度神经网络分类器,由于CNNs(卷积神经网络)程序出来的识别率有一些问题需要,所以暂时还没有更新这一部分。这节我想介绍下利用MATLAB的GUI设计一个图形化界面的NMIST识别系统。界面其实很简单,如下所示:
下面我就将一步一步介绍如何做这个界面。
第一步:打开MATLAB→File→New→GUI,然后就会出现如下图示。
然后点击Blank GUI(Default),这是就创建了一个空白的untitled.fig,你可以把它保存在你想存的目录下面。
第二步:这是就需要添加一些控件,如下图所示。
设置了这几个控件,你可以双击某一个控件改变它的名字,字体大小,以及Tag。好了这时控件创建完了,对应的打开图片的控件,你可以把Tag改为OpenImages.然后点右键中的Editor.这样你就进入GUI的函数里面,可以添加下面的代码,可以让你在windows下面打开你待识别的图片。
<span style="background-color: rgb(255, 255, 255);"></span><pre name="code" class="plain">function OpenImages_Callback(hObject, eventdata, handles)
其实上面的代码非常固定了,所以直接copy就行了。
第三步:添加axes1控件,其Tag就为axes1,上图已经给出,它可以显示打开的图片。
<span style="font-family:Times New Roman;">set(handles.axes1,'HandleVisibility','ON');
axes(handles.axes1);</span>
上面控件OpenImages函数中的代码添加上面两行代码就表示打开的图片在axes1中显示。
第四步:设计一个Edit控件,但是不需要添加任何代码,它只是显示识别结果框,点击右键Editor。最主要的是开始识别的这个控件,把Tag改为Regconition。点击右键Editor。添加代码如下:
<span style="font-family:Times New Roman;">function Regconition_Callback(hObject, eventdata, handles)
% hObject handle to Regconition (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global T
numClasses=10;
hiddenSize=200;
inputSize=28*28;
hiddenSize1=100;
T=getimage;
handles.img=im2double(handles.img);
images=reshape(handles.img,784,1);
load('result2.mat');
trainFeatures = feedForwardAutoencoder(opttheta, hiddenSize, inputSize, ...
images);
testFeatures1 = feedForwardAutoencoder(opttheta1, hiddenSize1, hiddenSize, ...
trainFeatures);
inputDatatest = testFeatures1;
[nop,pred]=max(theta_new*inputDatatest);
set(handles.edit1,'String',num2str(pred));
set(handles.edit1,'ForegroundColor','red');
set(handles.edit1,'FontSize',28);</span>
上面用的是原来训练好的网络参数,所以看着非常简单,reslut2.mat可以见资源,并给出两张识别图例。
第五步:做完上面4步,就是编译了,如下图示。
这样你可以打开你想识别的图片,然后点击开始识别,在Edit Text中显示识别的数字,如第一张图所示。
好了,这样一个简单的GUI识别系统就做完,其他识别系统以此类推。
下面我就将一步一步介绍如何做这个界面。
第一步:打开MATLAB→File→New→GUI,然后就会出现如下图示。
然后点击Blank GUI(Default),这是就创建了一个空白的untitled.fig,你可以把它保存在你想存的目录下面。
第二步:这是就需要添加一些控件,如下图所示。
设置了这几个控件,你可以双击某一个控件改变它的名字,字体大小,以及Tag。好了这时控件创建完了,对应的打开图片的控件,你可以把Tag改为OpenImages.然后点右键中的Editor.这样你就进入GUI的函数里面,可以添加下面的代码,可以让你在windows下面打开你待识别的图片。
<span style="background-color: rgb(255, 255, 255);"></span><pre name="code" class="plain">function OpenImages_Callback(hObject, eventdata, handles)
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像'); if isequal(filename,0)|isequal(pathname,0) errordlg('没有选中文件','出错'); return; else file=[pathname,filename]; global S %设置一个全局变量S,保存初始图像路径,以便之后的还原操作 S=file; x=imread(file); set(handles.axes1,'HandleVisibility','ON'); axes(handles.axes1); imshow(x); handles.img=x; guidata(hObject,handles); end
其实上面的代码非常固定了,所以直接copy就行了。
第三步:添加axes1控件,其Tag就为axes1,上图已经给出,它可以显示打开的图片。
<span style="font-family:Times New Roman;">set(handles.axes1,'HandleVisibility','ON');
axes(handles.axes1);</span>
上面控件OpenImages函数中的代码添加上面两行代码就表示打开的图片在axes1中显示。
第四步:设计一个Edit控件,但是不需要添加任何代码,它只是显示识别结果框,点击右键Editor。最主要的是开始识别的这个控件,把Tag改为Regconition。点击右键Editor。添加代码如下:
<span style="font-family:Times New Roman;">function Regconition_Callback(hObject, eventdata, handles)
% hObject handle to Regconition (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global T
numClasses=10;
hiddenSize=200;
inputSize=28*28;
hiddenSize1=100;
T=getimage;
handles.img=im2double(handles.img);
images=reshape(handles.img,784,1);
load('result2.mat');
trainFeatures = feedForwardAutoencoder(opttheta, hiddenSize, inputSize, ...
images);
testFeatures1 = feedForwardAutoencoder(opttheta1, hiddenSize1, hiddenSize, ...
trainFeatures);
inputDatatest = testFeatures1;
[nop,pred]=max(theta_new*inputDatatest);
set(handles.edit1,'String',num2str(pred));
set(handles.edit1,'ForegroundColor','red');
set(handles.edit1,'FontSize',28);</span>
上面用的是原来训练好的网络参数,所以看着非常简单,reslut2.mat可以见资源,并给出两张识别图例。
第五步:做完上面4步,就是编译了,如下图示。
这样你可以打开你想识别的图片,然后点击开始识别,在Edit Text中显示识别的数字,如第一张图所示。
好了,这样一个简单的GUI识别系统就做完,其他识别系统以此类推。
相关文章推荐
- MATLAB GUI中利用定时器制作动画
- 用matlab实现神经网络识别数字
- 关于利用机器学习进行手写数字的的识别
- knn-2 利用knn算法实现手写数字识别
- Tensorflow - Tutorial (2) : 利用softmax回归进行手写数字识别
- 关于利用机器学习进行手写数字的的识别
- android 利用环形菜单制作带数字表盘的时钟
- 利用MATLAB的GUI设计的一款可以进行FOCT电流比差计算的仿真平台
- Matlab PCA+SVM人脸识别(二)——GUI界面设计
- 利用Matlab自带的深度学习工具进行车辆区域检测与车型识别【福利-内附源码与数据库】(一)
- Matlab PCA+SVM人脸识别(二)——GUI界面设计
- 如何制作装机启动盘及重装系统; 如何利用百度云盘下载MATLAB等资料软件 ;如何安装镜像ISO文件
- MATLAB自动识别MNIST手写数字数据库
- C#中调用Matlab人工神经网络算法实现手写数字识别
- 利用贝叶斯分类器实现手写数字识别
- BP神经网络应用于手写数字识别--matlab程序
- 模式识别:利用MATLAB生成模式类
- Matlab实现决策树算法进行数字识别
- Matlab实现决策树算法进行数字识别
- 模式识别一--利用MATLAB生成模式类