gusucode.com > vision工具箱matlab源码程序 > vision/+vision/+internal/+ocr/+tool/TrainingTab.m
% This class is for internal use only and may change in the future. classdef TrainingTab < vision.internal.uitools.AbstractTab properties FilePanel SettingsPanel TrainingPanel BoxEditPanel ExportPanel end %---------------------------------------------------------------------- %---------------------------------------------------------------------- methods function this = TrainingTab(tool) this = this@vision.internal.uitools.AbstractTab(tool, ... 'TrainingTab', ... vision.getMessage('vision:ocrTrainer:TrainingTab')); this.createWidgets(); this.installListeners(); end % ------------------------------------------------------------------ function testers = getTesters(~) testers = []; end %------------------------------------------------------------------ function disableTrainingButton(this) this.TrainingPanel.TrainButton.Enabled = false; end %------------------------------------------------------------------ function enableTrainingButton(this) this.TrainingPanel.TrainButton.Enabled = true; end %------------------------------------------------------------------ function disableAddImagesButton(this) this.FilePanel.disableAddImagesButton(); end %------------------------------------------------------------------ function enableAddImagesButton(this) this.FilePanel.enableAddImagesButton(); end %------------------------------------------------------------------ function disableSaveButton(this) this.FilePanel.disableSaveButton(); end %------------------------------------------------------------------ function enableSaveButton(this) this.FilePanel.enableSaveButton(); end %------------------------------------------------------------------ function disableEditBoxButton(this) this.BoxEditPanel.disableEditButton(); end %------------------------------------------------------------------ function enableEditBoxButton(this) this.BoxEditPanel.enableEditButton(); end %------------------------------------------------------------------ function disableEvaluateButton(this) this.ExportPanel.EvaluateButton.Enabled = false; end %------------------------------------------------------------------ function enableEvaluateButton(this) this.ExportPanel.EvaluateButton.Enabled = true; end %------------------------------------------------------------------ function disableSettingsButton(this) this.SettingsPanel.disableButton(); end %------------------------------------------------------------------ function enableSettingsButton(this) this.SettingsPanel.enableButton(); end %------------------------------------------------------------------ function setTrainingButtonToolTip(this, id) this.setToolTipText(this.TrainingPanel.TrainButton, id); end end %---------------------------------------------------------------------- methods(Access = private) function createWidgets(this) % Tool-strip sections %%%%%%%%%%%%%%%%%%%%% fileSection = this.createSection(... 'vision:uitools:FileSection', 'secFile'); settingsSection = this.createSection(... 'vision:ocrTrainer:SettingsSection', 'secSettings'); boxEditSection = this.createSection(... 'vision:ocrTrainer:BoxEditSection', 'secBoxEdit'); trainingSection = this.createSection(... 'vision:ocrTrainer:TrainingSection', 'secTrain'); exportSection = this.createSection(... 'vision:ocrTrainer:ExportSection', 'secEval'); % Creating Components for each section %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% this.createFilePanel(); this.createSettingsPanel(); this.createBoxEditPanel(); this.createTrainingPanel(); this.createExportPanel(); % Tool-strip layout %%%%%%%%%%%%%%%%%%% this.addFileSection(fileSection); this.addSettingsSection(settingsSection); this.addBoxEditSection(boxEditSection); this.addTrainingSection(trainingSection); this.addExportSection(exportSection); % Place sections %%%%%%%%%%%%%%%% tab = this.getToolTab(); add(tab,fileSection); add(tab,settingsSection); add(tab,boxEditSection); add(tab,trainingSection); add(tab,exportSection); end %------------------------------------------------------------------ % Install listeners for each panel added to this tab. %------------------------------------------------------------------ function installListeners(this) this.installListenersFileSection(); this.installListenersSettingsSection(); this.installListenersBoxEditSection(); this.installListenersTrainingSection(); this.installListenersExportSection(); end end %---------------------------------------------------------------------- % Methods to create and configure panels added to this tab. %---------------------------------------------------------------------- methods function createFilePanel(this) this.FilePanel = vision.internal.ocr.tool.TrainerFilePanel(); end function createSettingsPanel(this) this.SettingsPanel = vision.internal.ocr.tool.SettingsPanel(); end %------------------------------------------------------------------ function createBoxEditPanel(this) this.BoxEditPanel = vision.internal.ocr.tool.BoxEditPanel(); end %------------------------------------------------------------------ function createTrainingPanel(this) this.TrainingPanel = vision.internal.ocr.tool.TrainingPanel(); end %------------------------------------------------------------------ function createExportPanel(this) this.ExportPanel = vision.internal.ocr.tool.ExportPanel(); end end %---------------------------------------------------------------------- % Methods for adding sections to this tab. %---------------------------------------------------------------------- methods %------------------------------------------------------------------ function addFileSection(this, section) add(section, this.FilePanel.Panel); end %------------------------------------------------------------------ function addSettingsSection(this, section) add(section, this.SettingsPanel.Panel); end %------------------------------------------------------------------ function addBoxEditSection(this, section) add(section, this.BoxEditPanel.Panel); end %------------------------------------------------------------------ function addTrainingSection(this, section) add(section, this.TrainingPanel.Panel); end %------------------------------------------------------------------ function addExportSection(this, section) add(section, this.ExportPanel.Panel); end end %---------------------------------------------------------------------- % File Panel listeners %---------------------------------------------------------------------- methods %------------------------------------------------------------------ function installListenersFileSection(this) this.FilePanel.addNewSessionCallback(... @(es,ed)newSession(getParent(this))); this.FilePanel.addOpenSessionCallbacks(... @(es,ed)openSession(getParent(this)), @this.doOpen); this.FilePanel.addSaveSessionCallbacks(... @(es,ed)saveSession(getParent(this)), @this.doSave); this.FilePanel.addAddImagesCallback(... @(es,ed)addImages(getParent(this))); end %------------------------------------------------------------------ % Handle the save button options %------------------------------------------------------------------ function doSave(this, src, ~) % from save options popup if src.SelectedIndex == 1 % Save saveSession(getParent(this)); elseif src.SelectedIndex == 2 % SaveAs saveSessionAs(getParent(this)); end end %------------------------------------------------------------------ % Handle the open button options %------------------------------------------------------------------ function doOpen(this, src, ~) % from save options popup if src.SelectedIndex == 1 % open openSession(getParent(this)); elseif src.SelectedIndex == 2 % add to current addToCurrentSession(getParent(this)); end end end %---------------------------------------------------------------------- % Settings listeners %---------------------------------------------------------------------- methods function installListenersSettingsSection(this) this.SettingsPanel.addButtonCallback(... @(es,ed)doSettings(getParent(this))); end end %---------------------------------------------------------------------- % Training section listeners %---------------------------------------------------------------------- methods function installListenersTrainingSection(this) this.TrainingPanel.addTrainButtonCallback(... @(es,ed)doTraining(getParent(this))); end end %---------------------------------------------------------------------- % Box editing section listeners %---------------------------------------------------------------------- methods function installListenersBoxEditSection(this) this.BoxEditPanel.addEditButtonCallback(... @(es,ed)doBoxEdit(getParent(this))); end end %---------------------------------------------------------------------- % Export section listeners %---------------------------------------------------------------------- methods function installListenersExportSection(this) this.ExportPanel.addExportButtonCallback(... @(es,ed)doEvaluateGenFunction(getParent(this))); end end end