1 / 24

Pattern recognition lab 8

Pattern recognition lab 8. TA : Nouf Al-Harbi :: nouf200@hotmail.com. Lab objective:. Dealing with GUI Make Bayesian Classifier using GUI. Steps for making Bayesian classifier using GUI. Why use a GUI in MATLAB?. it makes things simple for the end-users of the program

nayda-cobb
Download Presentation

Pattern recognition lab 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pattern recognition lab 8 TA : Nouf Al-Harbi :: nouf200@hotmail.com

  2. Lab objective: • Dealing with GUI • Make Bayesian Classifier using GUI

  3. Steps for making Bayesian classifier using GUI

  4. Why use a GUI in MATLAB? • it makes things simple for the end-users of the program • If GUIs were not used, people would have to work from the command line interface • It can be extremely difficult and frustrating.

  5. Steps for making Bayesian classifier using GUI • open up MATLAB • File  New  GUI

  6. Final form we should have • 8 Edit Text components • 9 Static Text component • 2 Pushbutton component • 2 figures

  7. Steps for making Bayesian classifier using GUI Add in all these components to the GUI by clicking on the icon and placing it onto the grid

  8. Steps for making Bayesian classifier using GUI • Its time to edit the properties of these components • Double click one of the components • You can also, Right-click the component and select property inspector

  9. Steps for making Bayesian classifier using GUI • The Tag parameter is basically the variable name of this component • The Stringparameter is the text of this component

  10. Steps for making Bayesian classifier using GUI • Now, save your GUI under any file name • When you save this file MATLAB automatically generates two files • myClassifier.fig file • contains the graphics of your interface • myClassifier.mfile • contains all the code for the GUI

  11. Steps for making Bayesian classifier using GUI • The .m file is where we attach the appropriate code to the callback of each component • we are primarily concerned only with the callback functions • You don’t have to worry about any of the other function types

  12. What Is a Callback? • It is a function that you write and associate with a specific component in the GUI or with the GUI figure itself • It controls GUI or component behavior by performing some action in response to an event for its component • The event can be • a mouse click on a push button • menu selection • key press , etc. • There is a set of callbacks for each component and for the GUI figure itself. • For more information about callbacks you can visit this interested website http://www.mathworks.com/help/techdoc/creating_guis/f16-999606.html

  13. Steps for making Bayesian classifier using GUI • Open up the .m file • In the MATLAB editor, click on the icon ,which will bring up a list of the functions within the .m • Select drawBtn_Callback.

  14. Steps for making Bayesian classifier using GUI • Using handles • Handles is a structure that contains all components in a figure including figure itself. • Texts, pushbutton, axes , … etc. • We can’t access any component without using handles

  15. Steps for making Bayesian classifier using GUI • There are many important functions : • Set • Set a value for the component property • Get • Get the value of the component property • Str2num • Convert from string to number • Num2str • Convert from number to string

  16. Examples • To get the value of pw1_text string: • p1=get(handles.pw1_text,’string’); • To set 20 to Mu1 string: • set(handles.Mu1_text,’string’,20); • Exercise: • Set a value of Mu1 string to Mu2 string

  17. guidata function • One of important function in gui • It updatesthe value of the component and keep that variable in our memory-workspace • That’s important to be used in other callback functions. • We can achieve it by doing this: guidata(h,handles)  • Generally speaking, we need to finish every callback function with it.

  18. Dealing with inputs • In each text callback we should write these instructions: handles.m1=get(handles.m1,’string’); guidata(h,handles); • Where m1 is a variabe we define to store mean value that the user enterd in m1 text box • In any callback we can use it as handles.m1

  19. Classify button callback Function classifyBtn_Callback(hObject, eventdata, handles) • m1=str2num(get(handles.m1,'string')); • m2=str2num(get(handles.m2,'string')); • s1=str2num(get(handles.s1,'string')); • s2=str2num(get(handles.s2,'string')); • p1=str2num(get(handles.p1,'string')); • p2=str2num(get(handles.p2,'string')); • x=str2num(get(handles.pattern,'string')); • Pxw1=NormalFun(x,m1, s1); • Pxw2=NormalFun(x,m2, s2); • Pw1x=Pxw1*p1/((Pxw1*p1)+(Pxw2*p2)); • Pw2x=Pxw2*p2/((Pxw1*p1)+(Pxw2*p2)); • %Now make a decision using the posteriors; • if (Pw1x > Pw2x) • rslt = sprintf('%d belongs to w1', x); • set(handles.result,'string',rslt) • else • rslt = sprintf('%d belongs to w2', x); • set(handles.result,'string',rslt) • end

  20. Function DrawBtn_Callback(hObject, eventdata, handles) Draw button callback • m1=str2num(get(handles.m1,'string')); • m2=str2num(get(handles.m2,'string')); • s1=str2num(get(handles.s1,'string')); • s2=str2num(get(handles.s2,'string')); • p1=str2num(get(handles.p1,'string')); • p2=str2num(get(handles.p2,'string')); • x=str2num(get(handles.pattern,'string')); • x1Max=m1+(4*s1); x1Min=m1-(4*s1); • x2Max=m2+(4*s2); x2Min=m2-(4*s2); • xMax=max(x1Max,x2Max); xMin=min(x1Min,x2Min); • x=xMin:0.1:xMax; • n=length(x); pxw1=zeros(1,n); pxw2=zeros(1,n); pw1x=zeros(1,n); pw2x=zeros(1,n); • for i=1:n • pxw1(i)=NormalFun(x(i),m1, s1); pxw2(i)=NormalFun(x(i),m2, s2); • end • for i=1:n • pw1x(i)=pxw1(i)*p1/((pxw1(i)*p1)+(pxw2(i)*p2)); • pw2x(i)=pxw2(i)*p2/((pxw1(i)*p1)+(pxw2(i)*p2)); • end • axes(handles.axes1); • plot(x,pw1x,'r-',x,pw2x,'b'); • axes(handles.axes2); • plot(x,pxw1,'r-',x,pxw2,'b');

  21. Launching the GUI • There are two ways to launch your GUI • through the GUIDE editor press the icon on the GUIDE editor • from the MATLAB command prompt • type in the name of the GUI at the command prompt • you don’t need to type the .fig or .m extension

  22. References • Materials of this lab are prepared using: • http://blinkdagger.com/matlab/matlab-gui-graphical-user-interface-tutorial-for-beginners/ • http://www.matrixlab-examples.com/callback-function.html • http://www.mathworks.com/help/techdoc/creating_guis/f16-999606.html

More Related