this my code is :
function varargout = MyTab3TestNew(varargin)%{
HOW TO CREATE A NEW TAB 1. Create or copy PANEL and TEXT objects in GUI 2. Rename tag of PANEL to "tabNPanel" and TEXT for "tabNtext", where N - is a sequential number. Example: tab3Panel, tab3text, tab4Panel, tab4text etc. 3. Add to Tab Code - Settings in m-file of GUI a name of the tab to TabNames variable Version: 1.0 First created: January 18, 2016 Last modified: January 18, 2016 Author: WFAToolbox (http://wfatoolbox.com)%}
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @MyTab3TestNew_OpeningFcn, ... 'gui_OutputFcn', @MyTab3TestNew_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});endif nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT
% --- Executes just before MyTab3TestNew is made visible.
function MyTab3TestNew_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to MyTab3TestNew (see VARARGIN)
% Choose default command line output for MyTab3TestNew
handles.output = hObject;%% Tabs Code
% Settings
TabFontSize = 10;TabNames = {'Preprocess', 'Cropping'};% FigWidth = 0.265; % the original
FigWidth = 0.700;% Figure resize
set(handles.SimpleOptimizedTab,'Units','normalized')pos = get(handles. SimpleOptimizedTab, 'Position');set(handles. SimpleOptimizedTab, 'Position', [pos(1) pos(2) pos(3) pos(4)]); % % figWidth was changed to pos(3)
%figure color
set(gcf,'Color',[0.31 0.31 0.31]); % new modified
% Tabs Execution
handles = TabsFun(handles,TabFontSize,TabNames);%tabs color
set(handles.tab1Panel,'BackgroundColor',[1 0 1]);% new modified% set(handles.tab2Panel,'BackgroundColor',[1 0 1]);% new modified
% set(handles.tab3Panel,'BackgroundColor',[1 0 1]);% new modified
% set(handles.tab4Panel,'BackgroundColor',[1 0 1]);% new modified
% Update handles structure
guidata(hObject, handles);% set the button next to off
set(handles.btnNext1,'enable','off');% UIWAIT makes MyTab3TestNew wait for user response (see UIRESUME)
% uiwait(handles.SimpleOptimizedTab);
% --- TabsFun creates axes and text objects for tabs
function handles = TabsFun(handles,TabFontSize,TabNames)% Set the colors indicating a selected/unselected tab
% set(handles.tab1Panel,'BackgroundColor', [1 0 1]); % not work
handles.selectedTabColor=get(handles.tab1Panel,'BackgroundColor');% handles.selectedTabColor=get(handles.tab2Panel,'BackgroundColor'); % new modified
% handles.selectedTabColor=get(handles.tab3Panel,'BackgroundColor'); % new modified
% handles.selectedTabColor=get(handles.tab4Panel,'BackgroundColor'); % new modified
handles.unselectedTabColor=handles.selectedTabColor-0.1;% Create Tabs
TabsNumber = length(TabNames);handles.TabsNumber = TabsNumber;TabColor = handles.selectedTabColor;for i = 1:TabsNumber n = num2str(i); % Get text objects position
set(handles.(['tab',n,'text']),'Units','normalized') pos=get(handles.(['tab',n,'text']),'Position'); % Create axes with callback function
handles.(['a',n]) = axes('Units','normalized',... 'Box','on',... 'XTick',[],... 'YTick',[],... 'Color',TabColor,... 'Position',[pos(1) pos(2) pos(3) pos(4)+0.01],... 'Tag',n,... 'ButtonDownFcn',[mfilename,'(''ClickOnTab'',gcbo,[],guidata(gcbo))']); % Create text with callback function
handles.(['t',n]) = text('String',TabNames{i},... 'Units','normalized',... 'Position',[pos(3),pos(2)/2+pos(4)],... 'HorizontalAlignment','left',... 'VerticalAlignment','middle',... 'Margin',0.001,... 'FontSize',TabFontSize,... 'Backgroundcolor',TabColor,... 'Tag',n,... 'ButtonDownFcn',[mfilename,'(''ClickOnTab'',gcbo,[],guidata(gcbo))']); TabColor = handles.unselectedTabColor;end % Manage panels (place them in the correct position and manage visibilities)
set(handles.tab1Panel,'Units','normalized')pan1pos=get(handles.tab1Panel,'Position');% set(handles.tab1Panel,'Color','red'); % New modified
set(handles.tab1text,'Visible','off')for i = 2:TabsNumber n = num2str(i); set(handles.(['tab',n,'Panel']),'Units','normalized') set(handles.(['tab',n,'Panel']),'Position',pan1pos) set(handles.(['tab',n,'Panel']),'Visible','off') set(handles.(['tab',n,'text']),'Visible','off')end% --- Callback function for clicking on tab
function ClickOnTab(hObject,~,handles)m = str2double(get(hObject,'Tag'));for i = 1:handles.TabsNumber; n = num2str(i); if i == m set(handles.(['a',n]),'Color',handles.selectedTabColor) set(handles.(['t',n]),'BackgroundColor',handles.selectedTabColor) set(handles.(['tab',n,'Panel']),'Visible','on') else set(handles.(['a',n]),'Color',handles.unselectedTabColor) set(handles.(['t',n]),'BackgroundColor',handles.unselectedTabColor) set(handles.(['tab',n,'Panel']),'Visible','off') endend% --- Outputs from this function are returned to the command line.
function varargout = MyTab3TestNew_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure
varargout{1} = handles.output;% --- Executes on button press in btnInput.
function btnInput_Callback(hObject, eventdata, handles)% hObject handle to btnInput (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global originalImage;global grayImage;global binaryImage;global areaOpenImage;% global OriginalPathName;
% [FileName,PathName]=uigetfile({'*.bmp;*.jpg;*.png'},' Choose an Aksara Document Image');
[FileName,PathName]=uigetfile('D:\pcd\tester\TemplateMatching\Input dokumen batak\dokumen karo\*.jpg',' Choose an Aksara Document Image');%
if isequal(FileName,0) errorMessage = sprintf('Error: %s does not exist in the search path folders.', FileName); uiwait(warndlg(errorMessage)); return;else fullFileName = fullfile(PathName,FileName); originalImage = imread(fullFileName); % set the path name to editTextPath
set(handles.editTextPath,'string',fullFileName); grayCheck = size(originalImage,3); if grayCheck > 1 axes(handles.axes1); imshow(originalImage, []); %grayscaling
grayImage = rgb2gray(originalImage); pause(0.05); axes(handles.axes2); imshow(grayImage, []); %binarizing
binaryImage = ~im2bw(grayImage, graythresh(grayImage)); pause(0.05); axes(handles.axes3); imshow(binaryImage, []); %area opening
areaOpenImage = bwareaopen(binaryImage, 24); pause(0.05); axes(handles.axes4); imshow(areaOpenImage, []); set(handles.btnNext1,'enable','on'); elseif length(unique(originalImage))>2 % is this grayscaled or not
% show as original
axes(handles.axes1); imshow(originalImage, []); %show as grayscaled
axes(handles.axes2); imshow(grayImage, []); %binarizing binaryImage = ~im2bw(originalImage, graythresh(originalImage)); pause(0.05); axes(handles.axes3); imshow(binaryImage, []); %area opening areaOpenImage = bwareaopen(binaryImage, 24); pause(0.05); axes(handles.axes4); imshow(areaOpenImage, []); set(handles.btnNext1,'enable','on'); else %show as original image
axes(handles.axes1); imshow(originalImage, []); %show as binary Image
axes(handles.axes3); imshow(originalImage, []); binaryImage = originalImage; %area opening areaOpenImage = bwareaopen(binaryImage, 24); pause(0.05); axes(handles.axes4); imshow(areaOpenImage, []); set(handles.btnNext1,'enable','on'); end end% --- Executes on button press in btnNext1.
function btnNext1_Callback(hObject, eventdata, handles)% hObject handle to btnNext1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)set(handles.(['a',2]),'Color',handles.selectedTabColor)set(handles.(['t',2]),'BackgroundColor',handles.selectedTabColor)set(handles.(['tab',2,'Panel']),'Visible','on')function editTextPath_Callback(hObject, eventdata, handles)% hObject handle to editTextPath (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of editTextPath as text
% str2double(get(hObject,'String')) returns contents of editTextPath as a double
% --- Executes during object creation, after setting all properties.
function editTextPath_CreateFcn(hObject, eventdata, handles)% hObject handle to editTextPath (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');end% --- Executes on button press in btnClear.
function btnClear_Callback(hObject, eventdata, handles)% hObject handle to btnClear (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% arrayfun(@cla,findall(0,'type','axes')); % to clear all axeses
axes(handles.axes1);cla('reset');axes(handles.axes2);cla('reset');axes(handles.axes3);cla('reset');axes(handles.axes4);cla('reset');set(handles.editTextPath,'String',''); % to clear editTextPath
clear clearvars; % to clear all variables in workspace
after i ran this code i got this error :
Reference to non-existent field 'a'.
Best Answer