
| Contents | Index |
• Desktop Tools and Development Environment
• Graphics
• Displaying Bit-Mapped Images
• Working with Images in MATLAB Graphics
• Working with 8-Bit and 16-Bit Images
8-Bit and 16-Bit Indexed Images
8-Bit and 16-Bit Intensity Images
Mathematical Operations Support for uint8 and uint16
Other 8-Bit and 16-Bit Array Support
• Reading, Writing, and Querying Graphics Image Files
• The Image Object and Its Properties
Specifying Parameters and Options
Default Settings and How to Change Them
Exporting to the Windows or Macintosh Clipboard
Printing with a Specific Paper Size
Exporting in a Specific Graphics Format
Exporting in EPS Format with a TIFF Preview
Exporting a Figure to the Clipboard
Setting the Figure Size and Position
Setting the Paper Size or Type
Setting the Axes Ticks and Limits
Setting Line and Text Characteristics
Setting the Line and Text Color
Specifying a Colorspace for Printing and Exporting
Excluding User Interface Controls form Printed Output
Frequently Used Graphics Formats
Factors to Consider in Choosing a Format
Properties Affected by Choice of Format
Impact of Rendering Method on the Output
Description of Selected Graphics Formats
How to Specify a Format for Exporting
Factors to Consider in Choosing a Driver
Information on Specific Graphics Objects
Figures Used for Graphing Data
Root Object - The Figure Parent
Example - Creating Core Graphics Objects
High-Level Versus Low-Level Functions
Identifying Plot Objects Programmatically
Plot Objects and Backward Compatibility
Changing the Size of Data Variables
Example - Enclosing Subplots with an Annotation Rectangle
Order Dependence of Setting Property Values
Properties Common to All Objects
How MATLAB Searches for Default Values
Examples - Setting Default Line Styles
The Current Figure, Axes, and Object
Searching for Objects by Property Values - findobj
Specifying the Target for Graphics Output
Preparing Figures and Axes for Graphics
Targeting Graphics Output with newplot
Quitting the MATLAB Environment
Errors in the Close Request Function
Overriding the Close Request Function
Redefining the CloseRequestFcn
Example - Translating Grouped Objects
Properties for Controlling Legend Content
Example - Excluding a Particular Object From a Legend
Example - One Legend Entry for a Group of Objects
Example - Showing Children of Group Objects in Legend
Example - Grouping Objects to Reduce the Legend Entries
User Interface Object Callbacks
Why Use Function Handle Callbacks
Example - Using Function Handles in GUIs
General Performance Guidelines
Specify Axes with Plotting Function for Better Performance
Basic 3-D Plotting: The plot3 function
Functions for Plotting Data Grids
Visualizing Functions of Two Variables
Surface Plots of Nonuniformly Sampled Data
Indexed Color Surfaces - Direct and Scaled Color Mapping
Example - Mapping Surface Curvature to Color
Move Camera Horizontally/Vertically
Move Camera Forward and Backward
Defining the Camera Path as a Stream Line
Moving In and Out on the Scene
Making the Scene Larger or Smaller
Rotation Without Resizing of Graphics Objects
Rotation About the Viewing Axis
Projection Types and Camera Location
Example - axis Command Options
Additional Commands for Setting Aspect Ratio
Default Aspect Ratio Selection
Effects of Setting Aspect Ratio Properties
Example - Displaying Cross-Sections of Surfaces
Example - Displaying Real Objects
Properties That Affect Lighting
Positioning Lights in Data Space
Example - A Transparent Isosurface
Mapping Alpha Data to the Alphamap
Example - Mapping Data to Color or Transparency
Example - Modifying the Alphamap
Behavior of the patch Function
Handling Mixed Data Specification
Coloring Edges with Shared Vertices
Interpolating in Indexed Color Versus Truecolor
Selecting Visualization Techniques
Steps to Create a Volume Visualization
Volume Visualization Functions
Example - Ways to Display MRI Data
Example - Adding Isocaps to an Isosurface
Using Scalar Techniques with Vector Data
Specifying Starting Points for Stream Plots
Accessing Subregions of Volume Data
1. Determine the Range of the Coordinates
2. Add Slice Planes for Visual Context
3. Add Contour Lines to the Slice Planes
4. Define the Starting Points for the Stream Lines
1. Select a Subset of Data to Plot
2. Calculate Curl Angular Velocity and Wind Speed
4. Define the View and Add Lighting
1. Load Data and Calculate Required Values
3. Add Contour Lines to Slice Planes
1. Specify Starting Points of the Data Range to Plot
2. Create Stream Lines to Indicate Particle Paths
4. Calculate the Stream Particle Vertices
2. Add Isocaps to the Isosurface
• Creating Graphical User Interfaces
• About the Simple GUIDE GUI Example
• Laying Out the Simple GUI in GUIDE
• Programming the Simple GUIDE GUI
• Using the Completed Simple GUIDE GUI
Creating the Simple Programmatic GUI Code File
• Laying Out the Simple Programmatic GUI
• Coding the Simple Programmatic GUI
• Using the Completed Simple Programmatic GUI
• Adding Components to the GUI
A Working GUI with Many Components
Adding Components to the GUIDE Layout Area
Defining User Interface Controls
Defining Panels and Button Groups
Working with Components in the Layout Area
• Creating Menus in a GUIDE GUI
• Designing for Cross-Platform Compatibility
• Component Callbacks in GUIDE
• Customizing Callbacks in GUIDE
• Examples: Programming GUIDE GUI Components
• Making Multiple GUIs Work Together
Example - Manipulating a Modal Dialog Box for User Input
Example - Individual GUIDE GUIs Cooperating as Icon Manipulation Tools
• GUI for Animating a 3-D View
• GUI to Interactively Explore Data in a Table
• Accessing Workspace Variables from a List Box
• A GUI to Set Simulink Model Parameters
About the Simulink Model Parameters Example
View and Run the Simulink Parameters GUI
How to Use the Simulink Parameters GUI
Programming the Slider and Edit Text Components
Running the Simulation from the GUI
About the Address Book Reader Example
View and Run the Address Book Reader GUI
Loading an Address Book Into the Reader
The Contact Phone Number Callback
Paging Through the Address Book - Prev/Next
• Using a Modal Dialog Box to Confirm an Operation
About the Modal Dialog Example
View and Run the Modal Dialog Box GUIs
Setting Up the Close Confirmation Dialog
Setting Up the GUI with the Close Button
• Creating and Running a Programmatic GUI
Creating Figures for Programmatic GUIs
• Adding Components to a Programmatic GUI
• Composing and Coding GUIs with Interactive Tools
Setting Positions of Components Interactively
Setting Font Characteristics Interactively
• Setting Tab Order in a Programmatic GUI
• Creating Menus for a Programmatic GUI
• Creating Toolbars for Programmatic GUIs
• Designing Programmatic GUIs for Cross-Platform Compatibility
• Initializing a Programmatic GUI
• Examples: Programming GUI Components
• Sharing Data Among a GUI's Callbacks
• GUI with Axes, Menu, and Toolbar
About the Axes, Menu, and Toolbar Example
Viewing and Running the AxesMenuToolbar Code
Generating the Graphing Commands and Data
• GUI that Displays and Graphs Tabular Data
Viewing and Running the tableplot Code
Setting Up and Interacting with the uitable
Handle Graphics Property Browser
Why Write Custom Applications?
Exchanging Data Files Between Platforms
Overview of matimport.c Example
Declare Variables for External Data
Read External Data into mxArray Data
Creating a MAT-File in Fortran
Building on Windows Operating Systems
Deploying MAT-File Applications
Limitations to Shared Library Support
Troubleshooting Shared Library Applications
Examples of Passing Data to Shared Libraries
Manually Converting Data Passed to Functions
Constructing a libpointer Object
Creating a Pointer to a Primitive Type
Creating a Pointer to a Structure
Passing a Pointer to the First Element of an Array
Putting a String into a Void Pointer
Memory Allocation for an External Library
Working with Structures Examples
Example of Passing a MATLAB Structure
Using the Structure as an Object
Introduction to Source MEX-Files
Overview of Creating a Binary MEX-File
Using Help Files with MEX-Files
Workspace for MEX-File Functions
Selecting a Compiler on Windows Platforms
Selecting a Compiler on UNIX Platforms
Overview of Building the timestwo MEX-File
Understanding MEX-File Problems
Compiler and Platform-Specific Issues
Custom Building on UNIX Systems
Custom Building on Windows Systems
Creating a MEX-File Using LAPACK and BLAS Functions
Preserving Input Values from Modification
Passing Arguments to Fortran Functions from C/C++ Programs
Passing Arguments to Fortran Functions from Fortran Programs
Handling Complex Numbers in LAPACK and BLAS Functions
Modifying the Function Name on UNIX Systems
MEX Uses 32-Bit API by Default
How to Upgrade MEX-Files to Use the 64-Bit API
Passing Two or More Inputs or Outputs
Passing Structures and Cell Arrays
Handling 8-, 16-, and 32-Bit Data
Manipulating Multidimensional Numerical Arrays
Calling Functions from C/C++ MEX-Files
Using C++ Features in MEX-Files
Debugging on the Microsoft Windows Platforms
Building Cross-Platform Applications
Specifying Constant Literal Values
Replacing fseek and ftell with 64-Bit Functions
Determining the Size of an Open File
Determining the Size of a Closed File
Using the Fortran %val Construct
Passing Two or More Inputs or Outputs
Calling Functions from Fortran MEX-Files
Debugging on Microsoft Windows Platforms
Building Cross-Platform Applications
What You Need to Build Engine Applications
Calling MATLAB Software from a C Application
Calling MATLAB Software from a C++ Application
Calling MATLAB Software from a Fortran Application
Attaching to an Existing MATLAB Session
Building and Running Engine Applications on Windows Operating Systems
Windows Engine Example engwindemo
Building and Running Engine Applications on UNIX Operating Systems
Files Required by Engine Applications
Debugging MATLAB Functions Used in Engine Applications
Benefits of the MATLAB Java Interface
Who Should Use the MATLAB Java Interface
To Learn More About Java Programming Language
Platform Support for JVM Software
Using a Different Version of JVM Software
Making Java Classes Available in MATLAB Workspace
Loading Java Class Definitions
Locating Native Method Libraries
Java Classes Contained in a JAR File
Saving and Loading Java Objects to MAT-Files
Finding the Public Data Fields of an Object
Accessing Private and Public Data
Determining the Class of an Object
Invoking Static Methods on Java Classes
Obtaining Information About Methods
Java Methods That Affect MATLAB Commands
How MATLAB Software Handles Undefined Methods
How MATLAB Software Handles Java Exceptions
Method Execution in MATLAB Software
How MATLAB Software Represents the Java Array
Creating an Array of Objects in MATLAB Software
Accessing Elements of a Java Array
Creating a New Array Reference
Creating a Copy of a Java Array
Conversion of MATLAB Argument Data
Passing Data to Overloaded Methods
Conversion of Java Return Types
Converting Objects to MATLAB Types
Description of Function phonebook
Description of Function pb_lookup
Description of Function pb_add
Description of Function pb_remove
Description of Function pb_change
Description of Function pb_listall
Description of Function pb_display
Description of Function pb_keyfilter
Benefits of the MATLAB .NET Interface
Why Use the MATLAB .NET Interface?
What's the Difference Between the MATLAB .NET Interface and MATLAB Builder NE?
Using a .NET assembly in MATLAB
To Learn More About the .NET Framework
Example - Using System Resources
Loading .NET Assemblies into MATLAB
.NET Properties in the MATLAB Workspace
.NET Methods in the MATLAB Workspace
.NET Events in the MATLAB Workspace
What Classes Are in a .NET Assembly?
Using the delete Function on a .NET Object
Handling Data Returned from a .NET Object
Creating .NET Arrays in MATLAB
Example - Passing Data To a .NET Assembly
Accessing .NET Array Elements in MATLAB
Example - Reading Data From a .NET Assembly
Limitations to Support of .NET Arrays
Creating a Delegate from a .NET Object Method
Creating a Delegate Instance Bound to a .NET Method
Using Delegates With out and ref Type Arguments
Combining and Removing Delegates
Calling a Method Asynchronously
Limitations to Support of .NET Delegates
How to Iterate Through An Enumeration
Using Enumerations to Test for Conditions
Example - Read Special System Folder Path
Using Bit Flags with Enumerations
Limitations to Support of .NET Enumerations
Working with Events in Microsoft Office 2007 Applications
Accessing Items in a Collection
Example - Creating a Collection
Example - Converting a Collection to a MATLAB Array
Displaying Generic Methods Using Reflection
The MATLAB COM Automation Server
Registering Controls and Servers
Overview of MATLAB COM Client Examples
Example - Using Internet Explorer Program in a MATLAB Figure
Example - Grid ActiveX Control in a Figure
Example - Reading Excel Spreadsheet Data
MATLAB Client and In-Process Server
MATLAB Client and Out-of-Process Server
COM Implementations Supported by MATLAB Software
Client Application and MATLAB Automation Server
Client Application and MATLAB Engine Server
Identifying Objects and Interfaces
Setting the Value of a Property
Using Enumerated Values for Properties
Properties That Take Arguments
Exceptions to Using Implicit Syntax
Specifying Enumerated Parameters
Returning Multiple Output Arguments
Argument Callouts in Error Messages
Functions for Working with Events
Responding to Events - an Overview
Responding to Events - Examples
Writing Event Handlers as MATLAB File Subfunctions
Releasing COM Interfaces and Objects
Handling Data from a COM Object
Passing MATLAB Data to ActiveX Objects
Passing MATLAB SAFEARRAY to COM Object
Reading SAFEARRAY from a COM Object in MATLAB Applications
Displaying MATLAB Syntax for COM Objects
Using a MATLAB Application as an Automation Client
Connecting to an Existing Excel Application
Running a Macro in an Excel Server Application
Using Microsoft Forms 2.0 Controls
Using MATLAB Application as a DCOM Client
MATLAB COM Support Limitations
Connecting to an Existing MATLAB Server
Executing Commands in the MATLAB Server
Exchanging Data with the Server
Terminating the Server Process
Specifying a Shared or Dedicated Server
Using MATLAB Application as a DCOM Server
Example - Viewing Methods from a Visual Basic .NET Client
Example - Calling MATLAB Software from a Web Application
Example - Calling MATLAB Software from a C# Client
What You Need to Use Web Services with MATLAB
Typical Applications Using Web Services with MATLAB
How MATLAB Accesses Web Services
Example - createClassFromWsdl Function
Tools for Creating Web Services
Supported Serial Port Interface Standards
Using the Examples with Your Device
The Serial Port Interface Standard
Connecting Two Devices with a Serial Cable
Serial Port Signals and Pin Assignments
Finding Serial Port Information for Your Platform
Using Virtual USB Serial Ports
Configuring and Returning Properties
Configuring Properties During Object Creation
The Serial Port Object Display
Creating an Array of Serial Port Objects
Example - Introduction to Writing and Reading Data
Controlling Access to the MATLAB Command Line
Example - Writing and Reading Text Data
Example - Parsing Input Data Using textscan
Example - Introduction to Events and Callbacks
Event Types and Callback Properties
Responding To Event Information
Creating and Executing Callback Functions
Enabling Callback Functions After They Error
Example - Using Events and Callbacks
Signaling the Presence of Connected Devices
Controlling the Flow of Data: Handshaking
Example: Introduction to Recording Information
Creating Multiple Record Files
Example: Recording Information to Disk
Using Serial Port Objects on Different Platforms
• Examples
| On this page… |
|---|
An indexed image consists of a data matrix, X, and a colormap matrix, map. map is an m-by-3 array of class double containing floating-point values in the range [0, 1]. Each row of map specifies the red, green, and blue components of a single color. An indexed image uses "direct mapping" of pixel values to colormap values. The color of each image pixel is determined by using the corresponding value of X as an index into map. Values of X therefore must be integers. The value 1 points to the first row in map, the value 2 points to the second row, and so on. Display an indexed image with the statements
image(X); colormap(map)
A colormap is often stored with an indexed image and is automatically loaded with the image when you use the imread function. However, you are not limited to using the default colormap—use any colormap that you choose. The description for the property CDataMapping describes how to alter the type of mapping used.
The next figure illustrates the structure of an indexed image. The pixels in the image are represented by integers, which are pointers (indices) to color values stored in the colormap.

The relationship between the values in the image matrix and the colormap depends on the class of the image matrix. If the image matrix is of class double, the value 1 points to the first row in the colormap, the value 2 points to the second row, and so on. If the image matrix is of class uint8 or uint16, there is an offset—the value 0 points to the first row in the colormap, the value 1 points to the second row, and so on. The offset is also used in graphics file formats to maximize the number of colors that can be supported. In the preceding image, the image matrix is of class double. Because there is no offset, the value 5 points to the fifth row of the colormap.
Note When using the painters renderer on the Windows platform, you should only use 256 colors when attempting to display an indexed image. Larger colormaps can lead to unexpected colors because the painters algorithm uses the Windows 256 color palette, which graphics drivers and graphics hardware are known to handle differently. To work around this issue, use the Zbuffer or OpenGL renderer, as appropriate. For more information regarding graphics renderers in MATLAB, see Technical Note 1201: The Technical Support Guide to Graphics Rendering and Troubleshooting. |
An intensity image is a data matrix, I, whose values represent intensities within some range. An intensity image is represented as a single matrix, with each element of the matrix corresponding to one image pixel. The matrix can be of class double, uint8, or uint16. While intensity images are rarely saved with a colormap, a colormap is still used to display them. In essence, handles intensity images are treated as indexed images.
This figure depicts an intensity image of class double.

To display an intensity image, use the imagesc ("image scale") function, which enables you to set the range of intensity values. imagesc scales the image data to use the full colormap. Use the two-input form of imagesc to display an intensity image, for example:
imagesc(I,[0 1]); colormap(gray);
The second input argument to imagesc specifies the desired intensity range. The imagesc function displays I by mapping the first value in the range (usually 0) to the first colormap entry, and the second value (usually 1) to the last colormap entry. Values in between are linearly distributed throughout the remaining colormap colors.
Although it is conventional to display intensity images using a grayscale colormap, it is possible to use other colormaps. For example, the following statements display the intensity image I in shades of blue and green:
imagesc(I,[0 1]); colormap(winter);
To display a matrix A with an arbitrary range of values as an intensity image, use the single-argument form of imagesc. With one input argument, imagesc maps the minimum value of the data matrix to the first colormap entry, and maps the maximum value to the last colormap entry. For example, these two lines are equivalent:
imagesc(A); colormap(gray) imagesc(A,[min(A(:)) max(A(:))]); colormap(gray)
An RGB image, sometimes referred to as a truecolor image, is stored as an m-by-n-by-3 data array that defines red, green, and blue color components for each individual pixel. RGB images do not use a palette. The color of each pixel is determined by the combination of the red, green, and blue intensities stored in each color plane at the pixel's location. Graphics file formats store RGB images as 24-bit images, where the red, green, and blue components are 8 bits each. This yields a potential of 16 million colors. The precision with which a real-life image can be replicated has led to the nickname "truecolor image."
An RGB MATLAB array can be of class double, uint8, or uint16. In an RGB array of class double, each color component is a value between 0 and 1. A pixel whose color components are (0,0,0) is displayed as black, and a pixel whose color components are (1,1,1) is displayed as white. The three color components for each pixel are stored along the third dimension of the data array. For example, the red, green, and blue color components of the pixel (10,5) are stored in RGB(10,5,1), RGB(10,5,2), and RGB(10,5,3), respectively.
To display the truecolor image RGB, use the image function:
image(RGB)
The next figure shows an RGB image of class double.

To determine the color of the pixel at (2,3), look at the RGB triplet stored in (2,3,1:3). Suppose (2,3,1) contains the value 0.5176, (2,3,2) contains 0.1608, and (2,3,3) contains 0.0627. The color for the pixel at (2,3) is
0.5176 0.1608 0.0627
![]() | Working with Images in MATLAB Graphics | Working with 8-Bit and 16-Bit Images | ![]() |

Includes the most popular MATLAB recorded presentations with Q&A; sessions led by MATLAB experts.
| © 1984-2011- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |
Store


