Advanced Image Processing Lab MSc Project. Project description The Advanced Image processing Lab project is a GUI interface encapsulates all the lab experiment,

Slides:



Advertisements
Similar presentations
Database Basics. What is Access? Database management system Computer-based equivalent of a manual database Makes it easy to organize and update information.
Advertisements

Using Macros and Visual Basic for Applications (VBA) with Excel
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Getting Started: Ansoft HFSS 8.0
The Web Warrior Guide to Web Design Technologies
© by Pearson Education, Inc. All Rights Reserved. continued …
A graphical user interface (GUI) is a pictorial interface to a program. A good GUI can make programs easier to use by providing them with a consistent.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
ArcView Documents Francisco Olivera, Ph.D., P.E. Department of Civil Engineering Texas A&M University.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
1 Introduction to the Visual Studio.NET IDE Powerpoint slides modified from Deitel & Deitel.
Matlab GUIs Making Matlab Interactive. Today’s topics What is a GUI? How does a GUI work? Where do you begin? Ways to build MATLAB GUIs.
Systems Software Operating Systems.
User Interface Design Chapter 11. Objectives  Understand several fundamental user interface (UI) design principles.  Understand the process of UI design.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
Digital Image Processing Lecture3: Introduction to MATLAB.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
Copyright © Texas Education Agency, All rights reserved. 1 Web Technologies Website Development with Dreamweaver.
Web Technologies Website Development Trade & Industrial Education
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
Matlab GUIs GUIDE.
Objectives Understand what MATLAB is and why it is widely used in engineering and science Start the MATLAB program and solve simple problems in the command.
IE 411/511: Visual Programming for Industrial Applications
Introduction to Matlab & Data Analysis
Copyright © 2007, Oracle. All rights reserved. Managing Concurrent Requests.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Automating Database Processing Chapter 6. Chapter Introduction Design and implement user-friendly menu – Called navigation form Macros – Automate repetitive.
Session 1 SESSION 1 Working with Dreamweaver 8.0.
GUI development with Matlab: GUI Front Panel Components 1 GUI front panel components In this section, we will look at -GUI front panel components -Programming.
Chapter 3 – Part 1 Word Processing Writer for Linux CMPF 112 : COMPUTING SKILLS.
Creating Dialog (ABAP Dynpro) Programs. Slide 2 Introduction All of the ERP systems operate similarly with regard to transactional integrity They all.
University of Sunderland CDM105 Session 6 Dreamweaver and Multimedia Fireworks MX 2004 Creating Menus and Button images.
Software Project Planning Defining the Project Writing the Software Specification Planning the Development Stages Testing the Software.
Systems Software Operating Systems. What is software? Software is the term that we use for all the programs and data that we use with a computer system.
Section 8.1 Create a custom theme Design a color scheme Use shared borders Section 8.2 Identify types of graphics Identify and compare graphic formats.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved. 1 3 Welcome Application Introduction to Visual Programming.
Introduction to MATLAB Damon Tomlin February 22, 2008 Lecture 3: Data Visualization & User Interfaces.
Laboratory Exercise # 9 – Inserting Graphics to Documents Office Productivity Tools 1 Laboratory Exercise # 9 Inserting Graphics to Documents Objectives:
Microsoft Expression Web-Illustrated Unit E: Working with Pictures.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
1 © 2010 Cengage Learning Engineering. All Rights Reserved. 1 Introduction to Digital Image Processing with MATLAB ® Asia Edition McAndrew ‧ Wang ‧ Tseng.
Chapter 2 – Introduction to the Visual Studio .NET IDE
Chapter 1 – Matlab Overview EGR1302. Desktop Command window Current Directory window Command History window Tabs to toggle between Current Directory &
Introduction to Matlab & Data Analysis 2015 In this tutorial we will: Build a practical application using GUIDE Learn more about graphical user interface.
The Software Development Process
GUI development with Matlab: GUI Front Panel Components GUI development with Matlab: Other GUI Components 1 Other GUI components In this section, we will.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Chapter Eleven The X Window System. 2 Lesson A Starting and Navigating an X Window System.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
EGR 115 Introduction to Computing for Engineers
Object-Oriented Application Development Using VB.NET 1 Chapter 2 The Visual Studio.NET Development Environment.
Introduction to Matlab Module #10 Page 1 Introduction to Matlab Module #10 – Creating Graphical User Interfaces Topics 1.Overview of GUI Development using.
Project Planning Defining the project Software specification Development stages Software testing.
MATLAB and SimulinkLecture 61 To days Outline Graphical User Interface (GUI) Exercise on this days topics.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
 2002 Prentice Hall. All rights reserved. 1 Introduction to the Visual Studio.NET IDE Outline Introduction Visual Studio.NET Integrated Development Environment.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
 You won’t write a single line of program code.  Instead, you’ll use visual programming techniques.  Visual Studio processes your actions (such as mouse.
Section 8.1 Section 8.2 Create a custom theme Design a color scheme
Graphical User Interface in MATLAB
Chapter 2 – Introduction to the Visual Studio .NET IDE
More on Graphical User Interfaces
Outline Matlab tutorial How to start and exit Matlab Matlab basics.
Chapter 2 – Introduction to the Visual Studio .NET IDE
Digital Image Processing
Presentation transcript:

Advanced Image Processing Lab MSc Project

Project description The Advanced Image processing Lab project is a GUI interface encapsulates all the lab experiment, algorithms and theoretical background of the Advanced Image processing Lab Course. Algorithms and UI are based on Matlab and Matlab Image processing Tool box GUI was built using Matlab “guide” tool for UI interface construction Based on Prof. Yaroslavsky’s book “Theoretical Foundations of Digital Imaging Using MATLAB”.

Purpose Easy and interactive experiments execution Single interface which provide a gateway to all of the Lab related materials To link between theory and practice To constitute an easy comparison tool of different image processing algorithms To constitute fast parameter effect on an algorithm evaluation platform To be the basis of a more in depth learning of advanced image processing lab topics

Project Structure 12 folders (one for each topic) - contains the lab experiments ‘htm’ folder– contains the lab documentation and theoretical background ‘Data’ folder – contains input images and signals ‘utils’ folder – contains common scripts and database files Two main files: AdvancedImageProcessingLab_mb.fig – Matlab figure which defines the UI AdvancedImageProcessingLab_mb.m – Matlab function with main and callback functions

GUI description There are two variations of the GUI: main topic navigation window – created by the ‘guide’ tool, and constitute as the basis to all of the experiment window UIs Experiment window – each experiment function defines a unique experiment window

Main topic navigation window The main topic navigation window is comprised of a welcome image, 12 pushbuttons, and a toolbar

Toolbar The tool bar contains tool which helps the user to inquire and investigate each experiment results. The toolbar consists of 9 buttons: Data cursor – enables inquiries of pixel or plot values at a certain positions. Load image\ load auxiliary image \ load 2nd auxiliary image – allows the user to change the input signal\image used by current experiment. For experiments with more than one input, load auxiliary image \ load 2nd auxiliary image buttons should be used. All experiments have default input image \signal, however it is possible to use user’s images \ signals. All image formats supported by matlab “imread” function are supported - ( 'bmp', 'cur’, ‘fts’, ‘fits’, ‘gif’, ‘hdf’, ‘ico’, ‘j2c’, ‘j2k’, ‘jp2’, ‘jpf’, ‘jpx’, ‘jpg’, ‘jpeg’, ‘pbm’, ‘pcx', 'pgm’, ‘png’, ‘pnm’, ‘ppm’, ‘ras’, ‘tif’, ‘tiff’, ‘xwd’), and raw ‘mat’ gray scale image files, for which the user will be prompt to provide the image size. It is possible to load an image of any size, but each image is resized to the size of 256x256. If the image is a color image, it will transform to gray. If the aspect ratio is not 1x1, the center of the image is cropped, to avoid distorting the image. Zoom in\out - allows the user to inspect image\signal by zooming in or out. Pan – allows the user to shift the image/signal right, left up or down. Help – upon pressing this button while in experiment, a detailed help document will be opened, with experiment tasks, questions, theoretical background and algorithm descriptions. Upon pressing this button while in main window, this chapter will appear. Interactive mode – This button controls the behavior of the program, when user changes the experiment setting. If it is set to ‘off’, then only once the user presses “run experiment’ will the experiment will be executed. If it is set to ‘on’, then whenever the user changes the experiment settings, immediately, the experiment is executed.

Topics list The twelve topics are: Image discretization Image quantization Image compression: predictive coding Image compression: transform coding Image statistics Image noise models Pattern formation models Image resampling Target location Image perfection: linear filters Image perfection: rank filters Image enhancement

GUI description: experiment window The experiment window is experiment result display, control panel, experiment selector, toolbar, and a ‘Back’ button

Matlab GUIDE tool The project was built using Matlab built-in tool ‘GUIDE’, the Open GUI Layout Editor tool for gui infrastructures Matlabs ‘GUIDE’ stores the GUI in two files: A FIG-file, with extension.fig, that contains a complete description of the GUI layout and each UI component, such as push buttons, axes, panels, menus, and so on. The FIG-file is a binary file and which cannot be modified except by changing the layout in GUIDE. FIG-files are specializations of MAT-files. A code file, with extension.m, that initially contains initialization code and templates for some callbacks that control GUI behavior. The code file contains the call back of the main FIG file UI components.

Matlab GUIDE tool

Main code file The code file structure is built of: Comments - Displayed at the command line in response to the help command. Initialization - GUIDE initialization tasks. Needed for proper operation of the code. Opening function - Performs your initialization tasks before the GUI user has access to the GUI. Output function - Returns outputs to the MATLAB command line after the opening function returns control and before control returns to the command line. Component and figure callbacks - Control the behavior of the GUI figure and of individual components. MATLAB software calls a callback in response to a particular event for a component or for the figure itself. Utility/helper functions - Perform miscellaneous functions not directly associated with an event for the figure or a component.

The guidata function and handles struct The guidata Matlab function store or retrieve GUI data - the ‘handles’ struct The ‘handles’ struct contains all the handles of the UI as well as other program parameters. All communication and data sharing between the different components are done with the ‘guidata’ function

Example top program flow Program checks validity of key folders, loads data base and upload the interface User run the AdvancedImageProcessingLab_mb function Program change current directory to the topics folder, execute the first default experiment and removes main window UI and image User select a topic by pressing the corresponding button Experiment program loads default UI, image\signal and algorithms parameters a displays the control panel and (mostly) test image Remove experiment UI and loads main window UI User pressed the ‘Back’ button

Example topic program flow Using the radio button, user change the current experiment Using change experiment parameters using the control panel Update the changed parameter, save current experiment status in ‘handles’ Experiment algorithms executed, results are displayed User press ‘Run experiment’

Experiment functions A standard experiment function file structure consists of: Comments Main function – defines the look of the experiment window, have similar name as the experiment Callbacks functions – for different UI tasks A “process_image” function to execute the algorithms and display the results Supplementary functions – for various tasks such as minimization of error etc

Common functions used DeployAxes - calculates the location of each axes position, and create those axes. SetSliderParams - defines a struct which describes a slider for a parameter. This struct is the passed to the SetInteractiveInterface function, which sets the sliders and other UIs. SetInteractiveInterface - This function creates the control panel, and all the UI (sliders, pushbuttons, radio buttons). It also gives tags to each of control panel components to allow easy location of those components for later use. process_image – runs the experiments and display the results update_sliders – handles UI when there is a dependency between two parameters. Calles to run_process_image if interactive mode is on. run_process_image – change a handle struct to an explicit function call of process_image. Used by Uis which are not sliders and update_sliders function. SetParam – the default callback of all the sliders. Update the GUIs and sliders related strings

‘TopicList’ struct The ‘TopicList’ struct is a struct contains all the topics and their experiments Stored in ‘TopicList.mat’ at the ‘utils’ folder A field example of the TopicList Struct

‘default’ struct The ‘default’ struct is a struct contains all the default signals\images filename, sizes etc of each experiment Stored in ‘Defaults.mat’ at the ‘utils’ folder Filenames are relative to ‘utils’ folder A field example of the default Struct

Algorithmic implementation The Matlab program language, while very versatile and convenient, is aimed at vector and matrix processing, and has a major drawback in the form of execution time of loops commonly used when performing local operation on images. To enhance speed, matrix operations are preferred over loops Using im2col function of Maltab loop operations transformed to matrix operations Im2col(im, [WndY, WndX]) function takes an image with size WxH, and creates a new matrix with size of (WndY* WndX)x(W*H). Which means that for 5x5 window, this function creates 24 more replicas of the image. But this cost in memory benefits in execution time Empirical result shows improvement of over 50 times In conclusion, many local image operation were implemented using im2col operation, however, in some cases for memory and educational purposes, a loop implementation was used.

Conclusions The “advanced Image Processing Lab” project presents a new platform of teaching the lab It enables a more in-depth learning and experimenting Gives a good comparison between different algorithms and same algorithms with different parameters Can be easily modified to hold more\ different topics