应用程序设计错误分类

33视图(30天)
巴勃罗Salaverria
巴勃罗Salaverria 2019年6月10日
评论道: 小次郎斋藤 2022年6月11日
亲爱的所有,
在创建一个应用程序使用应用程序设计师我无法compeltelly部署列车CNN。我的主要问题是全方位的功能分类应该是有效的:
[YPred] =分类(app.net, app.imds1);
在哪里 app.net 是火车CNN, app.imds1 是imageDatastore所有的图片,我想分类存储。
我的错误消息:
错误使用分类(第123行)
至少需要三个参数。
这意味着函数 分类 使用第二个选项,而不是我想要使用。是否有办法让它工作吗?有没有可能我没有completelly unistall Matlab 2018 b从我的电脑吗?我有2019运行,但它从未发生这个错误…
完整代码如下:
classdef ICapp < matlab.apps.AppBase
%属性对应于应用程序组件
属性(=公共访问)
UIFigure matlab.ui.Figure
DistanceEvolution matlab.ui.control.UIAxes
场上matlab.ui.control.Table
负载matlab.ui.control.StateButton
预测matlab.ui.control.StateButton
FrameNSpinnerLabel matlab.ui.control.Label
FrameNSpinner matlab.ui.control.Spinner
保存matlab.ui.control.Button
DistanceextrantionappLabel matlab.ui.control.Label
图像matlab.ui.control.Image
Image_2 matlab.ui.control.Image
情节matlab.ui.control.UIAxes
DoneLampLabel matlab.ui.control.Label
DoneLamp matlab.ui.control.Lamp
DoneLamp_2Label matlab.ui.control.Label
DoneLamp_2 matlab.ui.control.Lamp
DoneLamp_3Label matlab.ui.control.Label
DoneLamp_3 matlab.ui.control.Lamp
结束
属性(访问=私人)
imds0;
表;
imds1;
NFrame;
帧;
名称;
净;
predictY;
信息;
%的描述
结束
方法(访问=私人)
结束
%事件回调处理组件
方法(访问=私人)
%在组件创建之后执行的代码
函数startupFcn(应用程序、网络)
app.net =负载(“net.mat”);
示例= imageDatastore (“example.png”);
img = readimage(例如,1);
imshow (img,‘父’,app.PLOT);
app.table = readtable (“Example.xlsx”);
app.UITable.Data = app.table;
结束
%值功能:改变负载
函数LoadValueChanged(应用程序、事件)
DataLocation = uigetdir(位置的数据);
app.imds0 = imageDatastore (fullfile (DataLocation),“FileExtensions”、“中将”);
app.imds1 = augmentedImageDatastore((224 224),应用程序。imds0);
% N°的帧
S =大小(app.imds0.Files);
app.frames = S (1, 1);
app.NFrame = 1:1:年代(1,1);app.NFrame = app.NFrame ';
app.NFrame;
app.table.FrameN_ (1: S (1,1)) = app.NFrame;
%的帧
app.Name = app.imds0.Files;
app.table.ImageName (1: S (1,1)) = app.Name;
%加载所有数据
app.UITable.Data = app.table;
%打开灯
app.DoneLamp.Color = ' g ';
结束
%值改变功能:FrameNSpinner
函数FrameNSpinnerValueChanging(应用程序、事件)
结束
%值改变功能:FrameNSpinner
函数FrameNSpinnerValueChanged(应用程序、事件)
FrameN = app.FrameNSpinner.Value;
images1 = readimage (app.imds0 FrameN);
imshow (images1,‘父’,app.PLOT)
结束
%值改变功能:预测
函数PredictValueChanged(应用程序、事件)
app.net
app.imds1
组= 18;
[YPred] =分类(app.net, app.imds1);
s =字符串(YPred);
app.predictY =双(s);
app.table.Distance (1: app.frames) = app.predictY;
app.DoneLamp_2.Color = ' g ';
结束
结束
%初始化组件
方法(访问=私人)
%创建UIFigure和组件
函数createcomponent(应用)
%创建创建UIFigure和隐藏,直到所有组件
app.UIFigure = uifigure(“可见”、“关闭”);
app.UIFigure。位置= (100 100 1170 742);
app.UIFigure。Name = ' UI图;
%创建DistanceEvolution
app.DistanceEvolution = uiaxes (app.UIFigure);
标题(应用程序。DistanceEvolution,进化距离)
包含(应用程序。DistanceEvolution,坐标系N°)
ylabel(应用程序。DistanceEvolution,距离(像素)')
app.DistanceEvolution。位置= 40 570 321 [561];
%创建ui表
app.UITable =场上(app.UIFigure);
app.UITable。ColumnName = {' N帧°';“ImageName”;“距离”};
app.UITable。ColumnWidth ={'汽车'};
app.UITable。RowName = {};
app.UITable。位置= [17 73 528 274];
%创建负载
app.Load = uibutton(应用程序。UIFigure,“状态”);
app.Load。ValueChangedFcn = createCallbackFcn(应用,@LoadValueChanged,真实);
app.Load。文本=“负载”;
app.Load。FontWeight =“大胆”;
app.Load。位置= (91 611 100 22);
%建立预测
app.Predict = uibutton(应用程序。UIFigure,“状态”);
app.Predict。ValueChangedFcn = createCallbackFcn(应用,@PredictValueChanged,真实);
app.Predict。文本={“预测”;"};
app.Predict。FontWeight =“大胆”;
app.Predict。位置= (91 581 100 22);
%创建FrameNSpinnerLabel
app.FrameNSpinnerLabel = uilabel (app.UIFigure);
app.FrameNSpinnerLabel。HorizontalAlignment =“中心”;
app.FrameNSpinnerLabel。位置= [699 404 57 22];
app.FrameNSpinnerLabel。文本=“坐标系N°”;
%创建FrameNSpinner
app.FrameNSpinner = uispinner (app.UIFigure);
app.FrameNSpinner。ValueChangingFcn = createCallbackFcn(应用,@FrameNSpinnerValueChanging,真实);
app.FrameNSpinner。ValueChangedFcn = createCallbackFcn(应用,@FrameNSpinnerValueChanged,真实);
app.FrameNSpinner。HorizontalAlignment =“中心”;
app.FrameNSpinner。位置= [45 755 404 22];
app.FrameNSpinner。值= 1;
%创建保存
app.Save = uibutton(应用程序。UIFigure,“推”);
app.Save。FontWeight =“大胆”;
app.Save。位置= (91 551 100 22);
app.Save。文本={“保存”;"};
%创建DistanceextrantionappLabel
app.DistanceextrantionappLabel = uilabel (app.UIFigure);
app.DistanceextrantionappLabel。字形大小= 40;
app.DistanceextrantionappLabel。位置= (111 685 434 48);
app.DistanceextrantionappLabel。文本=“距离extrantion应用”;
%创建图像
app.Image =用户界面图像(app.UIFigure);
app.Image。位置= [17 653 86 80];
app.Image。我mageSource = '0.jpg';
%创建Image_2
app.Image_2 =用户界面图像(app.UIFigure);
app.Image_2。位置= (544 653 86 80);
app.Image_2。我mageSource = 'ijm_logo.jpg';
%创建图
app.PLOT = uiaxes (app.UIFigure);
标题(应用程序。情节,“预览”)
包含(应用程序。阴谋,”)
ylabel(应用程序。阴谋,”)
app.PLOT。字形大小= 14;
app.PLOT。位置= (799 360 332 344);
%创建DoneLampLabel
app.DoneLampLabel = uilabel (app.UIFigure);
app.DoneLampLabel。HorizontalAlignment =“正确”的;
app.DoneLampLabel。位置= [209 611 34 22];
app.DoneLampLabel。文本=“完成”;
%创建DoneLamp
app.DoneLamp = uilamp (app.UIFigure);
app.DoneLamp。位置= [258 611 20 20];
app.DoneLamp。颜色= (1 0 0);
%创建DoneLamp_2Label
app.DoneLamp_2Label = uilabel (app.UIFigure);
app.DoneLamp_2Label。HorizontalAlignment =“正确”的;
app.DoneLamp_2Label。位置= [209 581 34 22];
app.DoneLamp_2Label。文本=“完成”;
%创建DoneLamp_2
app.DoneLamp_2 = uilamp (app.UIFigure);
app.DoneLamp_2。位置= [258 581 20 20];
app.DoneLamp_2。颜色= (1 0 0);
%创建DoneLamp_3Label
app.DoneLamp_3Label = uilabel (app.UIFigure);
app.DoneLamp_3Label。HorizontalAlignment =“正确”的;
app.DoneLamp_3Label。位置= [209 551 34 22];
app.DoneLamp_3Label。文本=“完成”;
%创建DoneLamp_3
app.DoneLamp_3 = uilamp (app.UIFigure);
app.DoneLamp_3。位置= [258 551 20 20];
app.DoneLamp_3。颜色= (1 0 0);
%显示所有组件创建后的图
app.UIFigure。可见= '在';
结束
结束
%的应用程序创建和删除
方法(=公共访问)
%构建应用程序
函数应用= ICapp(变长度输入宗量)
%创建UIFigure和组件
createcomponent(应用)
%注册应用程序与应用程序设计师
app.UIFigure registerApp(应用)
%执行启动功能
runStartupFcn (app, @ (app) startupFcn(应用,变长度输入宗量{:}))
如果nargout = = 0
清除应用程序
结束
结束
%执行的代码在应用程序删除
函数删除(应用)
%删除UIFigure当应用程序被删除
删除(app.UIFigure)
结束
结束
结束

接受的答案

小次郎斋藤
小次郎斋藤 2019年6月11日
你的 作为分类函数 统计和机器学习的工具 在编译后的应用程序 。为了强制编译应用程序使用CNN分类,有两种方法。
(1)使用 SeriesNetwork.loadobj
函数startupFcn(示例应用程序、网络)
app.net =负载(“net.mat”);
app.net = SeriesNetwork.loadobj (app.net.net);
%……%
结束
(2)用户函数progma ( % # 在第一行startupFcn)
函数startupFcn(示例应用程序、网络)
% #函数SeriesNetwork
app.net =负载(“net.mat”);
app.net = app.net.net;
%……%
结束
希望这可以帮助. .
39岁的评论
小次郎斋藤
小次郎斋藤 2022年6月11日
我有点困惑。
深度学习工具箱安装和你有一个有效的执照吗?
是你的训练模型( trainedNetwork_1 )允许imageInputLayer吗?
你的问题不相关的应用程序设计师,如果上面不工作,我认为这是更好的,如果你将发布一个问题在MATLAB答案作为一个新的问题。

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!