Sunteți pe pagina 1din 17

MATLAB CONTENTS

SOFTWARE OVERVIEW

MATLAB is a high-level language and interactive environment for


numerical computation, visualization, and programming. Using MATLAB, you
can analyze data, develop algorithms, and create models and applications. The
language, tools, and built-in math functions enable you to explore multiple
approaches and reach a solution faster than with spreadsheets or traditional
programming languages, such as C/C++ or Java You can use MATLAB for a
range of applications, including signal processing and communications, image
and video processing, control systems, test and measurement, computational
finance, and computational biology. More than a million engineers and scientists
in industry and academia use MATLAB, the language of technical computing.

Key Features

 High-level language for numerical computation, visualization, and


application development
 Interactive environment for iterative exploration, design, and problem
solving
 Mathematical functions for linear algebra, statistics, Fourier analysis,
filtering, optimization, numerical integration, and solving ordinary
differential equations
 Built-in graphics for visualizing data and tools for creating custom plots
 Development tools for improving code quality and maintain ability and
maximizing Performance
 Tools for building applications with custom graphical interfaces.
 Functions for integrating MATLAB based algorithms with external
applications and Languages such as C, Java, .NET, and Microsoft Excel
Numeric Computation

MATLAB provides a range of numerical computation methods for analyzing


data, developing algorithms, and creating models. The MATLAB language
includes mathematical functions that support common engineering and science
operations Core math functions use processor-optimized libraries to provide fast
execution of vector and matrix calculations.

Available methods include:

• Interpolation and regression

• Differentiation and integration

• Linear systems of equations

• Fourier analysis

• Eigen values and singular values

• Ordinary differential equations (ODEs)

• Sparse matrices

MATLAB add-on products provide functions in specialized areas such as


statistics, optimization, signal analysis, and machine learning.

Data Analysis and Visualization

MATLAB provides tools to acquire, analyze, and visualize data, enabling you to
gain insight into your data in a fraction of the time it would take using
spreadsheets or traditional programming languages. You can also document and
share your results through plots and reports or as published MATLAB code.

Acquiring Data
MATLAB lets you access data from files, other applications, databases, and
external devices. You can read data from popular file formats such as Microsoft
Excel; text or binary files; image, sound, and video files; and scientific files such
as net CDF and HDF. File I/O functions let you work with data files in any format.
Using MATLAB with add-on products, you can acquire data from hardware
devices, such as your computer’s serial port or sound card, as well as stream live,
measured data directly into MATLAB for analysis and visualization. You can
also communicate with instruments such as oscilloscopes, function generators,
and signal analyzers.

Analyzing Data

MATLAB lets you manage, filter, and pre-process your data. You can perform
exploratory data analysis to uncover trends, test assumptions, and build
descriptive models. MATLAB provides functions for filtering and smoothing,
interpolation, convolution, and fast Fourier transforms (FFTs). Add-on products
provide capabilities for curve and surface fitting, multivariate statistics, spectral
analysis, image analysis, system identification, and other analysis tasks.

Visualizing Data

MATLAB provides built-in 2-D and 3-D plotting functions, as well as volume
visualization functions. You can use these functions to visualize and understand
data and communicate results. Plots can be customized either interactively or
programmatically. The MATLAB plot gallery provides examples of many ways
to display data graphically in MATLAB. For each example, you can view and
download source code to use in your MATLAB application.

Documenting and Sharing Results

You can share results as plots or complete reports. MATLAB plots can be
customized to meet publication specifications and saved to common graphical
and data file formats. You can automatically generate a report when you execute
a MATLAB program. The report contains your code, comments, and program
results, including plots. Reports can be published in a variety of formats, such as
HTML, PDF, Word, or Latex.

Programming and Algorithm Development

MATLAB provides a high-level language and development tools that let you
quickly develop and analyze algorithms and applications.

The MATLAB Language

The MATLAB language provides native support for the vector and matrix
operations that are fundamental to solving engineering and scientific problems,
enabling fast development and execution. With the MATLAB language, you can
write programs and develop algorithms faster than with traditional languages
because you do not need to perform low-level administrative tasks such as
declaring variables, specifying data types, and allocating memory. In many cases,
the support for vector and matrix operations eliminates the need for for-loops. As
a result, one line of MATLAB code can often replace several lines of C or C++
code. MATLAB provides features of traditional programming languages,
including f low control, error handling, and object-oriented programming (OOP).
You can use fundamental data types or advanced data structures, or you can
define custom data types. You can produce immediate results by interactively
executing commands one at a time. This approach lets you quickly explore
multiple options and iterate to an optimal solution. You can capture interactive
steps as scripts and functions to reuse and automate your work. MATLAB add-
on products provide built-in algorithms for signal processing and
communications, image and video processing, control systems, and many other
domains. By combining these algorithms with your own, you can build complex
programs and applications.
Development Tools

MATLAB includes a variety of tools for efficient algorithm development,


including:

Command Window –Lets you interactively enter data, execute commands and
programs, and display results

MATLAB Editor–Provides editing and debugging features, such as setting


break points and stepping through individual lines of code

Code Analyzer–Automatically checks code for problems and recommends


modifications to maximize performance and maintainability

MATLAB Profiler–Measures performance of MATLAB programs and


identifies areas of code to modify for improvement

Additional tools compare code and data files, and provide reports showing file
dependencies, annotated reminders, and code coverage.

Integration with Other Languages and Applications

You can integrate MATLAB applications with those written in other languages.

From MATLAB, you can directly call code written in C, C++, Java, and .NET.
Using the MATLAB engine library, you can call MATLAB code from C, C++,
or FORTRAN applications.

Performance

MATLAB uses processor-optimized libraries for fast execution of matrix and


vector computations. For general-purpose scalar computations, MATLAB uses
its just-in-time (JIT) compilation technology to provide execution speeds that
rival those of traditional programming languages. To take advantage of multi core
and multiprocessor computers, MATLAB provides many multithreaded linear
algebra and numerical functions. These functions automatically execute on
multiple computational threads in a single MATLAB session, enabling them to
execute faster on multi core computers you can take further advantage of multi
core desktop and other high-performance computing resources such as GPUs and
clusters with add-on parallel computing products. These products provide high-
level constructs that let you parallelize applications with only minor changes to
MATLAB code.

Image Acquisition

Image Acquisition Toolbox™ enables you to acquire images and video from
cameras and frame grabbers directly into MATLAB and SIMULINK. You can
detect hardware automatically and configure hardware properties. Advanced
workflows let you trigger acquisition while processing in-the-loop, perform
background acquisition, and synchronize sampling across several multimodal
devices. With support for multiple hardware vendors and industry standards, you
can use imaging devices ranging from inexpensive Web cameras to high-end
scientific and industrial devices that meet low-light, high-speed, and other
challenging requirements.

Key features

 Support for industry standards, including DCAM, Camera Link, and GigE
Vision
 Support for common OS interfaces for webcams, including Direct Show,
QuickTime, and video4linux2
 Support for a range of industrial and scientific hardware vendors
 Multiple acquisition modes and buffer management options
 Synchronization of multimodal acquisition devices with hardware
triggering
 Image Acquisition app for rapid hardware configuration, image
acquisition, and live video previewing
 Support for C code generation in Simulink

Together, MATLAB, Image Acquisition Toolbox, and Image Processing


Toolbox™ (and, optionally, Computer Vision System Toolbox™) provide a
complete environment for developing customized imaging solutions. You can
acquire images and video, visualize data, develop processing algorithms and
analysis techniques, and create Ui's and apps. The image acquisition engine
enables you to acquire frames as fast as your camera and PC can support for high
speed imaging. In addition, you can use Image Acquisition Toolbox with
Simulink and Computer Vision System Toolbox to model and simulate real-time
embedded imaging systems.

Image Acquisition Toolbox simplifies the acquisition process by providing a


consistent interface across operating systems, hardware devices, and vendors.
The toolbox provides multiple ways to access hardware devices from MATLAB
and Simulink: the Image Acquisition Tool, a programmatic interface in
MATLAB, and a block for Simulink. Each workflow provides access to camera
properties and controls while enabling you to solve different types of problems
with the strengths of each environment.

App for Image and Video Acquisition

The Image Acquisition app enables you to work with image and video acquisition
devices and is well suited for interactive configuration of cameras. You can
browse all hardware devices available on your computer, change device settings,
select a region of interest (ROI), preview an acquisition, acquire images and
video, and record data. A preview window helps verify and optimize your
acquisition parameters by automatically reflecting any adjustments made to
camera properties in the video stream. The Image Acquisition app serves as a
starting point in the development of automated and custom image acquisition and
processing systems.

Session Logging

Session logging lets you track actions performed in the tool with a history of
command-line equivalent functions. In situations that require the same
configuration and control process for multiple trials and experiments, the session
log provides the ability to load settings to a common point and export the code to
a programmatic interface in MATLAB for further automation.

Data Logging and Export

You can log data to disk, memory, or both simultaneously with the Image
Acquisition app or programmatically at the MATLAB command line. You can
set a limit on memory usage to prevent overuse of resources in memory-intensive
applications. Data acquired with the tool can also be exported directly to the
Image Viewer app in Image Processing Toolbox for greater control over
visualization. In addition, you can:

 Log each image frame or log frames at specified intervals


 Log data to disk as compressed or uncompressed AVI streams and MAT-
files
 Specify frame rate, compression techniques, and key frame rate for AVI
streams
 Extract single images from a video stream and store them in standard
formats, including JPEG 2000, BMP, JPEG, and TIFF
Image Acquisition in MATLAB
Image Acquisition Toolbox provides an app and functions and a programmatic
interface to help you work with image acquisition hardware in MATLAB. You
can automate repetitive tasks, create workflows combined with tasks such as
image processing, and create standalone executables that acquire images and
video with MATLAB COMPILER. The toolbox enables you to customize the
acquisition process to include integrating image processing functionality to
identify objects, enhance imagery, or construct mosaics and panoramic views as
the data is acquired. Image of blister packs acquired by Image Acquisition
Toolbox. Image Processing Toolbox analyzes the data and marks broken pills.

Acquiring Image Data

Image Acquisition Toolbox supports several modes, including background


acquisition and continuous acquisition, while processing the acquired data. The
toolbox automatically buffers data into memory, handles memory and buffer
management, and enables acquisition from an ROI. The image acquisition engine
is designed to acquire imagery as fast as your camera and computer can support,
enabling analysis and processing of high-speed imaging applications.

Data can be acquired in a wide range of data types, including signed or unsigned
8-, 16-, and 32-bit integers and single- or double-precision floating point. The
toolbox supports any color space provided by the image acquisition device
including RGB, YUV, or gray scale. Raw sensor data in a Bayer pattern can be
automatically converted into RGB data.

Extensible Hardware Support

Image Acquisition Toolbox supports several industry standards including


DCAM, Camera Link, and GigE Vision digital interfaces, as well as common
interfaces including DirectShow, QuickTime, and video4linux2. The toolbox is
also supported across Windows, Linux, and Macintosh systems, enabling you to
reuse code and transition designs to other systems. In addition, the toolbox
provides specific support for some manufacturers, enabling proprietary features
and increasing performance in image acquisition.

IMAGE PROCESSING USING MATLAB

Image processing is a form of signal processing, which uses image as input and
output. Generally, an image can be of two or three dimensional array. In
MATLAB, this array or matrix is manipulated. The picture shown below defines
you the several stages of image processing in MATLAB.

An image acquisition device can be a video camera, which is used for capturing
images. The image captured either with the help of digital or analogue cameras
can be used as the input. Most importantly, these cameras should be capable of
delivering images at different resolutions.

Digital cameras like CCD or CMOS sensor are those which have the direct
connection with the PC using USB port. Meanwhile, analogue cameras require a
grabbing card for connecting with PC. In MATLAB, Augmented Reality is
currently used for capturing the live video streams of the real world. It is directly
interfaced with the PC (Image Processor), and MATLAB uses inbuilt software
called adaptors for accessing or communicating with this device.

Image analysis can be done by extracting some of the functional details from the
captured images. Therefore, if there is a requirement for identifying an object,
then several robust characteristics of an object like color, pattern, edges, intensity,
and structure must be noted.

The final stage of image processing is the machine control in which a robot is
controlled according to the details obtained from image analysis. For example, if
a robot needs to identify a ball, it captures images in front of it, sends it to PC,
and analyses it with the MATLAB program. If the image input and program
output are satisfied, then it detects it as a ball. Otherwise, it goes on searching for
a ball by this method.

Overall, MATLAB is used in robots for detecting or tracking an image by


determining some of the parameters like location, size, shape, contour, etc., and
planning decisions based on it.

Key Features

 Image enhancement, filtering, and deblurring


 Image analysis, including segmentation, morphology, feature extraction,
and measurement
 Geometric transformations and intensity-based image registration methods
 Image transforms, including FFT, DCT, Radon, and fan-beam projection
 Workflows for processing, displaying, and navigating arbitrarily large
images
 Image Viewer and Video Viewer apps
 DICOM import and export
Importing and Exporting Images

Image Processing Toolbox supports images generated by a wide range of devices,


including digital cameras, satellite and airborne sensors, medical imaging
devices, microscopes, telescopes, and other scientific instruments. You can
visualize, analyze, and process these images in many data types, including single-
precision and double-precision floating-point and signed and unsigned 8-bit, 16-
bit, and 32-bit integers.

There are several ways to import and export images into and out of the MATLAB
environment for processing. You can use Image Acquisition Toolbox to acquire
live images from Web cameras, frame grabbers, DCAM cameras, GigE Vision
cameras, and other devices. Using Database Toolbox, you can access images
stored in ODBC-compliant or JDBC-compliant databases.

Standard and Specialized Formats Supported

MATLAB supports standard data and image formats, including JPEG, JPEG-
2000, TIFF, PNG, HDF, HDF-EOS, FITS, Microsoft® Excel®, ASCII, and binary
files. It also supports the multiband image formats BIP and BIL, as used by
LANDSAT. Low-level I/O and memory mapping functions enable you to
develop custom routines for working with any data format.

Image Processing Toolbox supports a number of specialized image file formats.


For medical images, it supports DICOM files, including associated metadata, as
well as the Analyze 7.5 and Interfile formats. The toolbox can also read geospatial
images in NITF files and high dynamic range images in HDR files.

Pre processing and Post processing Images

Image Processing Toolbox provides reference-standard algorithms for pre


processing and post processing tasks that solve frequent system problems, such
as interfering noise, low dynamic range, out-of-focus optics, and the difference
in color representation between input and output devices.

Image Enhancement

Image enhancement techniques in Image Processing Toolbox enable you to


increase the signal-to-noise ratio and accentuate image features by modifying the
colors or intensities of an image. You can:

 Perform histogram equalization


 Perform decor relation stretching
 Remap the dynamic range
 Adjust the gamma value
 Perform linear, median, or adaptive filtering

The toolbox includes specialized filtering routines and a generalized


multidimensional filtering function that handles integer image types, offers
multiple boundary-padding options, and performs convolution and correlation.
Predefined filters and functions for designing and implementing your own linear
filters are also provided.

Contrast Enhancement Techniques enhancing grayscale and true color images


with adaptive histogram equalization.

Image Transform

Image transforms such as FFT and DCT play a critical role in many image
processing tasks, including image enhancement, analysis, restoration, and
compression. Image Processing Toolbox provides several image transforms,
including Radon and fan-beam projections. You can reconstruct images from
parallel-beam and fan-beam projection data (common in tomography
applications). Image transforms are also available in MATLAB and Wavelet
Toolbox™.

Image Conversion

Image conversions between data classes and image types are a common
requirement for imaging applications. Image Processing Toolbox provides a
variety of utilities for conversion between data classes, including single- and
double-precision floating-point and signed or unsigned 8-, 16-, and 32-bit
integers. The toolbox includes algorithms for conversion between image types,
including binary, gray scale, indexed color, and true color. Specifically for color
images, the toolbox supports a variety of color spaces (such as YIQ, HSV, and
YCrCb) as well as Bayer pattern encoded and high dynamic range images.

Neural Network Toolbox

Neural Network Toolbox™ provides functions and apps for modelling complex
nonlinear systems that are not easily modelled with a closed-form equation.
Neural Network Toolbox supports supervised learning with feed forward, radial
basis, and dynamic networks. It also supports unsupervised learning with self-
organizing maps and competitive layers. With the toolbox you can design, train,
visualize, and simulate neural networks. You can use Neural Network Toolbox
for applications such as data fitting, pattern recognition, clustering, time-series
prediction, and dynamic system modelling and control.

To speed up training and handle large data sets, you can distribute computations
and data across multicore processors, GPUs, and computer clusters using Parallel
Computing Toolbox™.
Key Features

 Supervised networks, including multilayer, radial basis, learning vector


quantization (LVQ), time-delay, nonlinear autoregressive (NARX), and
layer-recurrent
 Unsupervised networks, including self-organizing maps and competitive
layers
 Apps for data-fitting, pattern recognition, and clustering
 Parallel computing and GPU support for accelerating training (using
Parallel Computing Toolbox)
 Pre-processing and post processing for improving the efficiency of
network training and assessing network performance
 Modular network representation for managing and visualizing networks of
arbitrary size
 Simulink blocks for building and evaluating neural networks and for
control systems applications

Network Architectures

Neural Network Toolbox supports a variety of supervised and unsupervised


network architectures. With the toolbox’s modular approach to building
networks, you can develop custom network architectures for your specific
problem. You can view the network architecture including all inputs, layers,
outputs, and interconnections.

Supervised Networks

Supervised neural networks are trained to produce desired outputs in response to


sample inputs, making them particularly well-suited to modelling and controlling
dynamic systems, classifying noisy data, and predicting future events.
Neural Network Toolbox includes four types of supervised networks: feed
forward, radial basis, dynamic and learning vector quantization.

Feed forward networks have one-way connections from input to output layers.
They are most commonly used for prediction, pattern recognition, and nonlinear
function fitting. Supported feed forward networks include feed forward back
propagation, cascade-forward back propagation, feed forward input-delay back
propagation, linear, and perception networks.

A two-layer feed forward network with sigmoid hidden neurons and linear output
neurons. This type of network can fit multidimensional mapping problems
arbitrarily well, given consistent data and enough neurons in its hidden layer.

Unsupervised Networks

Unsupervised neural networks are trained by letting the network continually


adjust itself to new inputs. They find relationships within data and can
automatically define classification schemes.

Neural Network Toolbox includes two types of self-organizing, unsupervised


networks: competitive layers and self-organizing maps.

Competitive layers recognize and group similar input vectors, enabling them to
automatically sort inputs into categories. Competitive layers are commonly used
for classification and pattern recognition.

Self-organizing maps learn to classify input vectors according to similarity. Like


competitive layers, they are used for classification and pattern recognition tasks;
however, they differ from competitive layers because they are able to preserve
the topology of the input vectors, assigning nearby inputs to nearby categories.
Improved Generalization

Improving the network’s ability to generalize helps prevent over fitting, a


common problem in neural network design. Over fitting occurs when a network
has memorized the training set but has not learned to generalize to new inputs.
Over fitting produces a relatively small error on the training set but a much larger
error when new data is presented to the network.

Neural Network Toolbox provides two solutions to improve generalization

 Regularization modifies the network’s performance function (the measure


of error that the training process minimizes). By including the sizes of the
weights and biases, regularization produces a network that performs well
with the training data and exhibits smoother behavior when presented with
new data.
 Early stopping uses two different data sets: the training set, to update the
weights and biases, and the validation set, to stop training when the
network begins to over fit the data.

S-ar putea să vă placă și