gusucode.com > vision工具箱matlab源码程序 > vision/+vision/+internal/+cascadeTrainer/+tool/TrainingImageLabelerSessionManager.m
classdef TrainingImageLabelerSessionManager < vision.internal.uitools.SessionManager methods %------------------------------------------------------------------ function this = TrainingImageLabelerSessionManager() this = this@vision.internal.uitools.SessionManager(); this.AppName = 'Training Image Labeler'; this.SessionField = 'labelingSession'; this.SessionClass = 'vision.internal.cascadeTrainer.tool.Session'; end %------------------------------------------------------------------ function session = loadSession(this, pathname, filename) session = []; filename = [pathname, filename]; try % load the MAT file temp = load(filename,'-mat'); if isValidSessionFile(this, temp) % Do additional checking on the BoardSet session = temp.(this.SessionField); if isempty(session.FileName) session.FileName = filename; end session.checkImagePaths(pathname, session.FileName); session.FileName = filename; elseif isTableROIs(temp) || isStructROIs(temp) [ROIs, varName] = getROIs(temp); session = vision.internal.cascadeTrainer.tool.Session(... ROIs, pathname, filename); session.ExportVariableName = varName; session.FileName = filename; else errorMsg = getString(message(this.CustomErrorMsgId, ... filename, this.AppName)); dlgTitle = getString(message('vision:uitools:LoadingSessionFailedTitle')); errordlg(errorMsg, dlgTitle, 'modal'); end catch loadSessionEx session = []; if strcmp(loadSessionEx.identifier, 'MATLAB:load:notBinaryFile') errorMsg = getString(message('vision:uitools:invalidSessionFile',... filename, this.AppName)); else errorMsg = loadSessionEx.message; end errordlg(errorMsg, ... getString(message('vision:uitools:LoadingSessionFailedTitle')), ... 'modal'); end end end end %-------------------------------------------------------------------------- function tf = isTableROIs(s) fn = fieldnames(s); tf = (numel(fn) == 1) && istable(s.(fn{1})); end %-------------------------------------------------------------------------- function [ROIs, varName] = getROIs(s) fn = fieldnames(s); ROIs = s.(fn{1}); varName = fn{1}; end %-------------------------------------------------------------------------- function tf = isStructROIs(s) fn = fieldnames(s); s = s.(fn{1}); tf = isstruct(s) && isfield(s, 'imageFilename') && isfield(s, 'objectBoundingBoxes'); end