Landscape functions and people Zooming in and zooming out Bangkok, November 2010.
EASE Scheme of Image Zooming Documentation
-
Upload
srikrishna-acharya-bailore -
Category
Documents
-
view
158 -
download
1
description
Transcript of EASE Scheme of Image Zooming Documentation
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
ABSTRACT:
Earlier there are different interpolation techniques for de-blurring of images. When an image
is zoomed a checkerboard effect arises in the images. In order to remove/reduce interpolation
artifacts such as image blur and the checkerboard effect (ringing), EASE tries to amend the
interpolation error by employing the classical interpolation error theorem in an edge-adaptive
fashion. In this project we are using an interpolation method, called the error-amended sharp
edge (EASE) scheme, which is a modified bilinear method.
In order to remove/reduce interpolation artifacts such as image blur and the checkerboard
effect (ringing), EASE tries to amend the interpolation error by employing the classical
interpolation error theorem in an edge-adaptive fashion. EASE is applied for image zooming
by both integer and non integer magnification factors. The new interpolation scheme has
proved to result in high-resolution images having clearer and sharper edges than linear
interpolation methods, for all synthetic and natural images we are testing using MATLAB
7.0. EASE can be implemented with ease; it turns out to be similarly efficient as cubic
interpolation schemes. More effective interpolation methods are yet to be developed in order
to accurately preserve the edge orientation without introducing a high computation cost. This
ease scheme is developed using MATLAB 7.0 software
Index Terms—Checkerboard effect, directional Sobel derivative, Error-amended sharp edge
(EASE) scheme, image zooming, interpolation, Interpolation error theorem.
Dept of ECE, GPREC, KNL Page 1
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
1. INTRODUCTION
IMAGE re-sampling consists of two basic steps: interpolation and evaluation
(sampling). Image interpolation turns discrete data into a continuous function, which is
necessary for various geometric transform of discrete images. There are two kinds of
interpolation methods: linear and nonlinear ones. For linear methods, diverse interpolation
kernels of finite size have been introduced, in the literature, as approximations of the ideal
interpolation kernel (the sinc function) which is spatially unlimited. However, such linear
interpolation methods have been introduced without considering specific local information on
edges. Thus, they may bring up artifacts, such as the checkerboard effect or image blur, when
the image content shows discontinuities or edges.
Nonlinear interpolation methods have been suggested to reduce the artifacts of linear
methods. The major step in the nonlinear methods is to either fit the edges with some
templates or predict edge information for the high resolution image from the low resolution
one. However, these nonlinear methods are often computation-intensive and they can be one
to two orders more expensive than linear methods for 2-D images. Furthermore, they may
become ineffective in the estimation of the edge orientation for the class of edge models with
fine scales (e.g., tightly packed edges that can be commonly found in the texture patterns).
More effective interpolation methods are yet to be developed in order to accurately preserve
the edge orientation without introducing a high computation cost.
Recently, the authors have studied edge-forming methods as a post process of
conventional interpolation schemes, to form clear and sharp edges by applying partial
differential equations (PDEs) of anisotropic diffusion. Such PDE-based methods have proved
to form reliable edges satisfactorily for image zooming by integer and non integer
magnification factors, for both gray-scale and color images.
1.1 Image sensing and Acquisition
Most of the images in which we are interested are generated by the combination of an
illumination source and reflection or absorption of energy from that source by the elements of
the scene being imaged. We enclose illumination and scene in quotes to emphasize the fact
that they are considerably more general than the familiar situation in which the visible light
source illuminates a common everyday 3D (three dimensional) scene. For example, the
illumination may originate from a source such as ultrasound or even a computer generated
illumination pattern. Similarly, the scene elements could be familiar objects, but they can just
Dept of ECE, GPREC, KNL Page 2
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
as easily be molecules, buried rock formations, or a human brain. Depending on the nature of
the source, illumination energy is reflected from, or transmitted through, objects .An example
in the first category is light reflected from a planar surface .An example in the second
category when x-rays pass through a diagnostic x-ray film. In some applications the reflected
or transmitted energy is focused onto a photo converter which converts energy into visible
light.
The below figure shows the three principal sensor arrangements used to transform
illumination energy into digital images. The idea is simple: Incoming energy is transformed
into a voltage by the combination of input electrical power and sensor material that is
responsive to the particular type of energy being detected, the output voltage waveform is the
response of the sensor and a digital quantity is obtained from the each sensor by digitising the
response.
FIG 1.1
In order to generate a 2D image using a single sensor there has to be relative displacement in
both x and y directions between the sensor and the area to be imaged .In this a film negative
is mounted onto a drum whose mechanical rotation provides displacement in one dimension.
A single sensor is mounted on a lead screw that provides motion in the perpendicular
direction. Because mechanical rotation can be controlled with high precision , this method is
inexpensive but slow way to obtain high resolution images other similar mechanical
arrangements use a flat bed, with the sensor moving in two linear directions.
1.2 Sampling and Quantization
When we want to convert a continuous image digital image .An image may be continuous
with respect to x and y directions, and also in amplitude .To convert into a digital form, we
Dept of ECE, GPREC, KNL Page 3
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
have to sample the function in both coordinates and in amplitude. Digitizing the coordinate’s
values is called sampling. Digitizing the amplitude values is called quantization.
1.3What is Resampling?
Digital images consist of a rectangular grid of evenly spaced pixels. Each pixel can be
thought of as a measurement or sample of the light from a subject. Commonly, the original
samples are obtained using a scanner or digital camera by averaging the amount of red, green
and blue light that falls on the sensitive area of each of its CCD sensing elements.
Resampling is the mathematical technique used to create a new version of the image with a
different width and/or height in pixels. Increasing the size of an image is called upsampling;
reducing its size is called downsampling.
When images are upsampled, the number of pixels increases, but, with reference to the
original subject, new image detail cannot be created that was not already present in the
original image. As a result, images normally become softer the more they ar enlarged since
the amount of information per pixel goes down.
When images are downsampled, information in the original image has to be discarded to
make the image smaller. Thus if you downsample and then upsample an image, you will not
get all the original image detail back. Downsampling a soft image can make it appear sharper
even though it contains less information than the original.
Why is Resampling Important?
A few situations where image resampling comes into play are:
Reducing the size of an image from a scanner or digital camera for emailing or
display on the web.
This step is normally followed by saving the file in JPEG format and uploading
it to a web site or attaching it to an email message.
Increasing the size of an image before or during the printing process.
Printing an image almost always requires resampling it as it will usually be too small or too
large to make a print of the desired size. This resampling is handled automatically by your
Windows printer driver. Most drivers do a good job of resizing images, but you can resample
the image yourself prior to printing if you suspect the driver is not doing a good job.
How Resampling Works
It turns out that resampling a 2-dimensional image can be broken down into two one-
dimensional resampling passes. In one pass, horizontal resampling is performed producing an
Dept of ECE, GPREC, KNL Page 4
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
image with a different width but the same height. In the next pass, this intermediate image is
resampled vertically, changing it height while leaving the width the same. This is
computationally much more efficient than trying to combine the work into a single pass.
Upsampling involves interpolating between the existing pixels to obtain an estimate of their
values at the new pixel locations. Downsampling involves computing a weighted average of
the original pixels that overlap each new pixel.
In the mathematical subfield of numerical analysis, interpolation is a method of constructing
new data points within the range of a discrete set of known data points.
In engineering and science one often has a number of data points, as obtained by sampling or
experimentation, and tries to construct a function which closely fits those data points. This is
called curve fitting or regression analysis. Interpolation is a specific case of curve fitting, in
which the function must go exactly through the data points.
A different problem which is closely related to interpolation is the approximation of a
complicated function by a simple function. Suppose we know the function but it is too
complex to evaluate efficiently. Then we could pick a few known data points from the
complicated function, creating a lookup table, and try to interpolate those data points to
construct a simpler function. Of course, when using the simple function to calculate new data
points we usually do not receive the same result as when using the original function, but
depending on the problem domain and the interpolation method used the gain in simplicity
might offset the error.
1.4 DEFINITION OF INTERPOLATION
From inter meaning between and pole, the points or nodes. Any means of calculating a new
point between two existing data points is therefore interpolation. There are many methods for
doing this, many of which involve fitting some sort of function to the data and evaluating that
function at the desired point. This does not exclude other means such as statistical methods of
calculating interpolated data. The simplest form of interpolation is to take the mean average
of x and y of two adjacent points to find the mid point. This will give the same result as linear
interpolation evaluated at the midpoint.
Dept of ECE, GPREC, KNL Page 5
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Given a sequence of n distinct numbers xk called nodes and for each xk a second number yk,
we are looking for a function f so that,
A pair xk, yk is called a data point and f is called an interpolant for the data points.
When the numbers yk are given by a known function f, we sometimes write fk.
Figure 1.1: An interpolation of a finite set of points on an epitrochoid.
In the above figure, the points through which curve is splined are red; the blue curve
connecting them is interpolation.
So, the Interpolation provides a means of estimating the function at intermediate points. This
can be explained in detail by taking an example given below.
For example, suppose we have a table like this, which gives some values of an unknown
function f.
Dept of ECE, GPREC, KNL Page 6
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Figure 1.2: Plot of the data points as given in the table.
Interpolation provides a means of estimating the function at intermediate points, such as
x = 2.5.
Image interpolation techniques often are required in medical imaging for image generation
(e.g., discrete back projection for inverse Radon transform) and processing such as
compression or re sampling. Since the ideal interpolation function spatially is unlimited,
several interpolation kernels of finite size have been introduced. This thesis compares
1) Nearest neighbour interpolation
2) Bi-linear interpolation
3) Bi-cubic interpolation
4) B-spline interpolation
The comparison is done by:
1) Spatial and Fourier analyses;
2) Computational complexity as well as runtime evaluations; and
3) Qualitative and quantitative interpolation error determinations for particular interpolation
tasks which were taken from common situations in medical image processing.
For local and Fourier analyses, a standardized notation is introduced and fundamental
properties of interpolators are derived. Successful methods should be direct current (DC)-
Dept of ECE, GPREC, KNL Page 7
x f(x)
0
1
2
3
4
5
6
0
0.8415
0.9093
0.1411
−0.7568
−0.9589
−0.2794
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
constant and interpolators rather than DC-inconstant or approximators. Each method’s
parameters are tuned with respect to those properties. This results in three novel kernels,
which are introduced in this chapter and proven to be within the best choices for medical
image interpolation: the 6 X 6 Blackman–Harris windowed sinc interpolator, and the C2-
continuous cubic kernels with N = 6 and N = 8 supporting points. For quantitative error
evaluations, a set of 50 direct digital X rays was used. They have been selected arbitrarily
from clinical routine. In general, large kernel sizes were found to be superior to small
interpolation masks. Except for truncated sinc interpolators, all kernels with N = 6 or larger
sizes perform significantly better than N = 2 or N = 3 point methods (p << 0:005). However,
the differences within the group of large sized kernels were not significant. Summarizing the
results, the cubic 6 X 6 interpolator with continuous second derivatives and can be
recommended for most common interpolation tasks. It appears to be the fastest six-point
kernel to implement computationally. It provides eminent local and Fourier properties, is easy
to implement, and has only small errors. The same characteristics apply to B-spline
interpolation, but the 6 X 6 cubic avoids the intrinsic border effects produced by the B-spline
technique. However, the goal of this study was not to determine an overall best method, but
to present a comprehensive catalogue of methods in a uniform terminology, to define general
properties and requirements of local techniques, and to enable the reader to select that method
which is optimal for his specific application in medical imaging.
Dept of ECE, GPREC, KNL Page 8
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
2. MOTIVATION FOR THE THESIS
The issue of quality is particularly relevant to the medical community; for ethical reasons, it
is a prime concern when manipulating data. Any manipulation should result in the least
amount of distortion or artifacts, so as not to influence the clinician’s judgment. For practical
reasons, efficiency is another prime concern. Any processing should result in the least
computational effort, particularly when dealing with the large amount of data involved in
volumetric medical imaging. In this thesis, we analyze the tradeoff between the quality and
the cost of several interpolation methods, and we introduce generalized interpolation as a
means to overcome the limitations of traditional interpolation. The essence of interpolation is
to represent an arbitrary continuously defined function as a discrete sum of weighted and
shifted basis functions. An important issue is the adequate choice of those basis functions.
The traditional view asks that they satisfy the interpolation property, and many researchers
have put a significant effort in optimizing them under this specific constraint
This thesis proposes a new interpolation method, called the Error-Amended Sharp Edge
(EASE) scheme. EASE is a modified bilinear method which tries to amend the interpolation
error in an edge-adaptive way by employing the Interpolation Error Theorem. The resulting
scheme has proved to result in zoomed images having sharper edges than bilinear, C1-
bicubic, and C2-bicubic interpolation methods. EASE is similarly efficient as cubic
interpolation methods and can be implemented with ease.
In this project, the performance of EASE Scheme has been found though the simulation in
MATLAB and the results have been compared with the nearest neighborhood method.
2.1 OBJECTIVES
The objective will be to implement an Error-Amended Sharp Edge (EASE) Scheme for
Image Zooming. The development tool used will be MATLAB. MATLAB provides an
excellent RAD environment, with its image processing toolbox, and high level programming
methodology. The system is to be composed of a number of sub-systems, which correspond
to each stage of image processing. MATLAB has few in built functions for interpolation of
images. Using these techniques some of the basic Zooming techniques like Nearest neighbor
interpolation, Bi-linear and Bi-cubic interpolation can be performed. Additionally, the EASE
technique can be implemented using MATLAB more conveniently.
Dept of ECE, GPREC, KNL Page 9
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
3 MATLAB
MATLAB is a high-performance language for technical computing. It integrates
computation, visualization, and programming in an easy-to-use environment where problems
and solutions are expressed in familiar mathematical notation. MATLAB is used convert .avi
or .mpg to text format. Typical uses include:
Math and computation
Algorithm development
Modeling, simulation, and prototyping
Data analysis, exploration, and visualization
Scientific and engineering graphics
Application development, including graphical user interface building.
MATLAB is an interactive system whose basic data element is an array that does not require
dimensioning. This allows you to solve many technical computing problems, especially those
with matrix and vector formulations, in a fraction of the time it would take to write a program
in a scalar no interactive language such as C or FORTRAN.
The name MATLAB stands for matrix laboratory. MATLAB was originally written to
provide easy access to matrix software developed by the LINPACK and EISPACK projects.
Today, MATLAB uses software developed by the LAPACK and ARPACK projects, which
together represent the state-of-the-art in software for matrix computation.
MATLAB has evolved over a period of years with input from many users. In university
environments, it is the standard instructional tool for introductory and advanced courses in
mathematics, engineering, and science. In industry, MATLAB is the tool of choice for high-
productivity research, development, and analysis.
The MATLAB system consists of five main parts:
Development Environment. This is the set of tools and facilities that help you use
MATLAB functions and files. Many of these tools are graphical user interfaces. It
includes the MATLAB desktop and Command Window, a command history, and
browsers for viewing help, the workspace, files, and the search path.
Dept of ECE, GPREC, KNL Page 10
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
The MATLAB Mathematical Function Library. This is a vast collection of
computational algorithms ranging from elementary functions like sum, sine, cosine,
and complex arithmetic, to more sophisticated functions like matrix inverse, matrix
eigenvalues, Bessel functions, and fast Fourier transforms.
The MATLAB Language. This is a high-level matrix/array language with control
flow statements, functions, data structures, input/output, and object-oriented
programming features. It allows both "programming in the small" to rapidly create
quick and dirty throw-away programs, and "programming in the large" to create
complete large and complex application programs.
Handle Graphics. This is the MATLAB graphics system. It includes high-level
commands for two-dimensional and three-dimensional data visualization, image
processing, animation, and presentation graphics. It also includes low-level
commands that allow you to fully customize the appearance of graphics as well as to
build complete graphical user interfaces on your MATLAB applications.
The MATLAB Application Program Interface (API). This is a library that allows
you to write C and FORTRAN programs that interact with MATLAB. It include
facilities for calling routines from MATLAB (dynamic linking), calling MATLAB as
a computational engine, and for reading and writing MAT-files.
3.1 MATLAB's desktop tools:
You can also use MATLAB functions to perform most of the features found in the desktop
tools. The tools are:
Command Window
Command History
Launch Pad
Help Browser
Current Directory Browser
Workspace Browser
Array Editor
Editor/Debugger
Command Window: Use the Command Window to enter variables and run functions and
M-files.
Dept of ECE, GPREC, KNL Page 11
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Command History: Lines you enter in the Command Window are logged in the Command
History window. In the Command History, you can view previously used functions, and copy
and execute selected lines. To save the input and output from a MATLAB session to a file,
use the diary function.
You can run external programs from the MATLAB Command Window. The exclamation
point character is a shell escape and indicates that the rest of the input line is a command to
the operating system. This is useful for invoking utilities or running other programs without
quitting MATLAB. On Linux, for example, Macs magik.m invokes an editor called emacs
for a file named magik.m. When you quit the external program, the operating system returns
control to MATLAB.
Launch Pad: MATLAB's Launch Pad provides easy access to tools, demos, and
documentation.
Help Browser: Use the Help browser to search and view documentation for all your Math
Works products. The Help browser is a Web browser integrated into the MATLAB desktop
that displays HTML documents. Use to Help Navigator to find information. It includes:
Product filter - Set the filter to show documentation only for the products you
specify.
Contents tab - View the titles and tables of contents of documentation for your
products.
Index tab- Find specific index entries (selected keywords) in the Math Works
documentation for your products.
Search tab- Look for a specific phrase in the documentation. To get help for a specific
function, set the Search type to Function Name.
Favorites tab- View a list of documents you previously designated as favorites.
After finding documentation using the Help Navigator, view it in the display pane. While
viewing the documentation, you can:
Browse to other pages - Use the arrows at the tops and bottoms of the pages, or use
the back and forward buttons in the toolbar.
Bookmark pages - Click the Add to Favorites button in the toolbar.
Print pages - Click the print button in the toolbar.
Dept of ECE, GPREC, KNL Page 12
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Find a term in the page - Type a term in the Find in page field in the toolbar and click
Go.
Other features available in the display pane are: copying information, evaluating a selection,
and viewing Web pages.
Current Directory Browser: MATLAB file operations use the current directory and the
search path as reference points. Any file you want to run must either be in the current
directory or on the search path.
T o determine how to execute functions you call, MATLAB uses a search path to find M-files
and other MATLAB-related files, which are organized in directories on your file system. Any
file you want to run in MATLAB must reside in the current directory or in a directory that is
on the search path. By default, the files supplied with MATLAB and Math Works toolboxes
are included in the search path.
Workspace Browser: The MATLAB workspace consists of the set of variables (named
arrays) built up during a MATLAB session and stored in memory. You add variables to the
workspace by using functions, running M-files, and loading saved workspaces.
To view the workspace and information about each variable, use the Workspace browser, or
use the functions who and whos. To delete variables from the workspace, select the variable
and select Delete from the Edit menu. Alternatively, use the clear function. The workspace is
not maintained after you end the MATLAB session. To save the workspace to a file that can
be read during a later MATLAB session, select Save Workspace As from the File menu, or
use the save function. This saves the workspace to a binary file called a MAT-file, which has
a .mat extension. There are options for saving to different formats. To read in a MAT-file,
select Import Data from the File menu, or use the load function.
Array Editor: Double-click on a variable in the Workspace browser to see it in the Array
Editor. Use the Array Editor to view and edit a visual representation of one- or two-
dimensional numeric arrays, strings, and cell arrays of strings that are in the workspace.
Editor/Debugger: Use the Editor/Debugger to create and debug M-files, which are programs
you write to run MATLAB functions. The Editor/Debugger provides a graphical user
interface for basic text editing, as well as for M-file debugging.
Dept of ECE, GPREC, KNL Page 13
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
You can use any text editor to create M-files, such as Emacs, and can use preferences
(accessible from the desktop File menu) to specify that editor as the default. If you use
another editor, you can still use the MATLAB Editor/Debugger for debugging, or you can
use debugging functions, such as dbstop, which sets a breakpoint.
If you just need to view the contents of an M-file, you can display it in the Command
Window by using the type function. MATLAB features a family of application-specific
solutions called toolboxes. Very important to most users of MATLAB, toolboxes allow you
to learn and apply specialized technology. Toolboxes are comprehensive collections of
MATLAB functions (M-files) that extend the MATLAB environment to solve particular
classes of problems. Areas in which toolboxes are available include signal processing, control
systems, neural networks, fuzzy logic, wavelets, simulation, and many others.
3.2 IMAGE PROCESSING TOOLBARS:
The Image Processing Toolbox software is a collection of functions that extend the capability
of the MATLAB numeric computing environment. The toolbox supports a wide range of
image processing operations, including.
Spatial image transformations
Morphological operations
Neighborhood and block operations
Linear filtering and filter design
Transforms
Image analysis and enhancement
Image registration
Deblurring
Region of interest operations
Many of the toolbox functions are MATLAB M-files, a series of MATLAB statements that
implement specialized image processing algorithms. You can view the MATLAB code for
these functions using the statement
type function name.
Dept of ECE, GPREC, KNL Page 14
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
You can extend the capabilities of the toolbox by writing your own M-files, or by using the
toolbox in combination with other toolboxes, such as the Signal Processing Toolbox™
software and the Wavelet Toolbox™ software.
This example introduces some basic image processing concepts. The example starts by
reading an image into the MATLAB workspace. The example then performs some contrast
adjustment on the image. Finally, the example writes the adjusted image to a file.
Read and Display an Image
First, clear the MATLAB workspace of any variables and close open figure windows.
Close all;
To read an image, use the imread command. The example reads one of the sample images
included with the toolbox, pout.tif, and stores it in an array named I.
I = imread('pout.tif');
imread infers from the file that the graphics file format is Tagged Image File Format (TIFF).
For the list of supported graphics file formats, see the imread function reference
documentation. Now display the image.
The toolbox includes two image display functions
imshow and imtool. imshow is the toolbox’s fundamental image display function. imtool
starts the Image Tool which presents an integrated environment for displaying images and
performing some common image processing tasks. The Image Tool provides all the image
display capabilities of imshow but also provides access to several other tools for navigating
and exploring images, such as scroll bars, the Pixel Region tool, Image Information tool, and
the Contrast Adjustment tool. For more information,“Displaying and Exploring Images”. You
can use either function to display an image. This example uses imshow.
Imshow (I)
Dept of ECE, GPREC, KNL Page 15
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
To write the newly adjusted image I2 to a disk file, use the imwrite function. If you include
the filename extension '.png', the imwrite function writes the image to a file in Portable
Network Graphics (PNG) format, but you can specify other formats.
imwrite (I2, 'pout2.png');
See the imwrite function reference page for a list of file formats it supports. See also Writing
Image Data to a File” on page 3-5 for more information about writing image data to files.
First, clear the MATLAB workspace of any variables, close open figure windows, and close
all open Image Tools.
close all
Read and display the grayscale image rice.png.
I = imread('rice.png');
imshow(I)
The Image Processing Toolbox software includes two display functions, imshow and imtool.
Both functions work within the Handle Graphics architecture: they create an image object
and display it in an axes object contained in a figure object. To display image data, use the
imshow function. The following example reads an image into the MATLAB workspace and
then displays the image in a MATLAB figure window.
moon = imread('moon.tif');
imshow(moon);
The imshow function displays the image in a MATLAB figure window, as shown in the
following figure.
Dept of ECE, GPREC, KNL Page 16
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Image Displayed in a Figure Window by imshow
READING IMAGE DATA
To import an image from any supported graphics image file format, in any of the supported
bit depths, use the imread function. This example reads a truecolor image into the MATLAB
workspace as the variable RGB.
RGB = imread('football.jpg');
If the image file format uses 8-bit pixels, imread stores the data in the workspace as a uint8
array. For file formats that support 16-bit data, such as PNG and TIFF, imread creates a
uint16 array. imread uses two variables to store an indexed image in the workspace: one for
the image and another for its associated colormap. imread always reads the colormap into a
matrix of class double, even though the image array
It may be of class.
[X,map] = imread('trees.tif');
Dept of ECE, GPREC, KNL Page 17
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
In these examples, imread infers the file format to use from the contents of the file. You can
also specify the file format as an argument to imread. Imread supports many common
graphics file formats, such as Microsoft® Windows®
Bitmap (BMP), Graphics Interchange Format (GIF), Joint Photographic Experts Group
(JPEG), Portable Network Graphics (PNG), and Tagged Image File Format (TIFF) formats.
For the latest information concerning the bit depths and/or image formats supported, see
imread and informants.
If the graphics file contains multiple images, imread imports only the first image from the
file. To import additional images, you must use imread with format-specific arguments to
specify the image you want to import. In this example, imread imports a series of 27 images
from a TIFF file and stores the images in a four-dimensional array. You can use imfinfo to
determine how many images are stored in the file.
mri = zeros([128 128 1 27],'uint8'); % preallocate 4-D array
for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
End
Dept of ECE, GPREC, KNL Page 18
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
4 INTERPOLATION METHODS
Interpolation is the process used to estimate an image value at a location in between image
pixels. There are many different interpolation methods, some of which are described below.
Some of the concerns to take into account when choosing an appropriate algorithm are: How
accurate is the method? How expensive is it? How smooth is the interpolant? How many data
points are needed?
Common interpolation algorithms can be grouped into two categories: adaptive and non-
adaptive. Adaptive methods change depending on what they are interpolating (sharp edges
vs. smooth texture), whereas non-adaptive methods treat all pixels equally.
Non-adaptive algorithms include: nearest neighbor, bilinear, bicubic, spline, sinc, lanczos
and others. Depending on their complexity, these use anywhere from 0 to 256 (or more)
adjacent pixels when interpolating. The more adjacent pixels they include, the more accurate
they can become, but this comes at the expense of much longer processing time. These
algorithms can be used to both distort and resize a photo.
Original
Adaptive algorithms include many proprietary algorithms in licensed software such as:
Qimage, PhotoZoom Pro, Genuine Fractals and others. Many of these apply a different
version of their algorithm (on a pixel-by-pixel basis) when they detect the presence of an
edge-- aiming to minimize unsightly interpolation artifacts in regions where they are most
apparent. These algorithms are primarily designed to maximize artifact-free detail in
enlarged photos, so some cannot be used to distort or rotate an image.
The interpolation methods all work in a fundamentally similar way. In each case, to
determine the value for an interpolated pixel, they find the point in the input image that the
Dept of ECE, GPREC, KNL Page 19
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
output pixel corresponds to. They then assign a value to the output pixel by computing a
weighted average of some set of pixels in the vicinity of the point. The weightings are based
on the distance each pixel is from the point.
As we discussed above, for image resampling, the interpolation step must reconstruct a two-
dimensional (2-D) continuous signal s(x.y) from its discrete samples s(k,l). Thus, the
amplitude at the position (x,y) must be estimated from its discrete neighbors. This can be
described formally as the convolution of the discrete image samples with the continuous 2-D
impulse response of a 2-D h(x,y) of a 2-D reconstruction filter
s(x,y) = ∑k ∑l s(k,1).2Dh(x-k,y-1) …………………….. (1)
Usually, symmetrical and separable interpolation kernels are used to reduce the
computational complexity
2Dh(x,y) = h(x).h(y) …………………….. (2)
Fig. 1 illustrates the interpolation of the point (x,y) in a 4X4 neighborhood. Interpolation is
performed in the x direction first. The small grey intermediate points in Fig. 1 are generated
by four one-dimensional (1-D) interpolations. They are used for the final 1-D interpolation in
the y- direction.
Figure1. One-dimensional decomposition of the 2-D N ×N interpolation of the point
(x,y).
4.1 NEAREST NEIGHBOUR INTERPOLATION
Dept of ECE, GPREC, KNL Page 20
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Nearest neighbor is the most basic and requires the least processing time of all the
interpolation algorithms because it only considers one pixel-- the closest one to the
interpolated point. This has the effect of simply making each pixel bigger.
Here the output pixel is assigned the value of the pixel that the point falls within. No other
pixels are considered i.e; in this method, we are trying to approximate the sinc function by a
spatially limited kernel that can be given by the nearest neighbor. The value s(x) at the
location (x) is chosen as the next known value s(k). Therefore, only N=1 supporting point is
required for the nearest neighbor interpolation. This is tantamount to convolution with a rect
function [Fig. 2(a)]
…………………(3)
Clearly, h1(x) is a DC-constant interpolator
Figure2. Nearest Neighbor Interpolation a) Kernel b) Magnitude of Fourier Transform
c) Logarithmic plot of magnitude
Fig. 2(b) shows that the Fourier spectrum of the nearest neighbor kernel equals the sinc
function (expressed in the frequency domain). The logarithmical scale shows prominent
sidelobes in those regions of the frequency domain where the repetitions of S caused by s
scanning should be suppressed [Fig. 2(c)].
The gain in the pass band rapidly falls off to 2/π 64% at the cutoff point, and the amplitude
of the side maxima is more than 20%. Therefore, strong aliasing and blurring effects are
associated with the nearest neighbor method for image interpolation.
Dept of ECE, GPREC, KNL Page 21
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
4.2 BI-LINEAR INTERPOLATION
Bilinear interpolation considers the closest 2x2 neighborhood of known pixel values
surrounding the unknown pixel. It then takes a weighted average of these 4 pixels to arrive at
its final interpolated value. This results in much smoother looking images than nearest
neighbor.
Here the values of both direct neighbors are weighted by their distance to the opposite point
of interpolation. Therefore, the linear approximation of the sinc function follows the
triangular function
……………… (4)
The triangular function h2(x) corresponds to a modest low-pass filter H2(f) in the frequency
domain [figure 3]. Again,h2(0)=1,h2(±1,2,…)=0,H2(0)=1 and H2(±1,2,..)=0.
Figure3. Bi-linear Interpolation a) Kernel b) Magnitude of Fourier Transform c)
Logarithmic plot of magnitude
Therefore, the linear kernel is a Dc constant interpolator. The side lobes in the stop band are
below 10%, which still is considerable. Therefore, the main disadvantages of linear
Dept of ECE, GPREC, KNL Page 22
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
interpolation are both the attenuation of high-frequency components and the aliasing of the
data beyond the cutoff point into the low frequencies.
4.3 CUBIC CONVOLUTION:
Cubic convolution determines the grey level from the weighted average of the 16 closest pixels to the specified input coordinates, and assigns that value to the output coordinates or CC calculates a distance weighted average of a block of 16 pixels from the original image which surround the new output pixel location.
Dept of ECE, GPREC, KNL Page 23
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
5. INTRODUCTION TO EASE
This thesis explains a new interpolation method, called the error-amended sharp edge
(EASE) scheme, which is a modified bilinear method. In order to remove/reduce
interpolation artifacts such as image blur and the checkerboard effect (ringing), EASE tries to
amend the interpolation error by employing the classical interpolation error theorem in an
edge-adaptive fashion.
EASE is applied for image zooming by both integer and non integer magnification
factors. The new interpolation scheme has proved to result in high-resolution images having
clearer and sharper edges than linear interpolation methods, for all synthetic and natural
images we have tested. EASE can be implemented with ease; it turns out to be similarly
efficient as cubic interpolation schemes.
5.1 ERROR AMENDED SHARP EDGE SCHEME FOR IMAGE
INTERPOLATION
Desirable features of any digital image resolution- enhancement algorithm include exact
interpolation (for 'distortion less' or 'lossless' processing) adjustable resolution, adjustable
smoothness, and ease of computation. As discussed above the image re-sampling consists of
two basic steps: interpolation and evaluation (sampling). Image interpolation turns discrete
data into a continuous function, which is necessary for various geometric transform of
discrete images. There are two kinds of interpolation methods: linear and nonlinear ones. For
linear methods, diverse interpolation kernels of finite size have been introduced, in the
literature, as approximations of the ideal interpolation kernel which is spatially unlimited.
However, such linear interpolation methods have been introduced without considering
specific local information on edges. Thus, they may bring up artifacts, such as the
checkerboard effect or image blur, when the image content shows discontinuities or edges.
Nonlinear interpolation methods have been suggested to reduce the artifacts of linear
methods. The major step in the nonlinear methods is to either fit the edges with some
templates or predict edge information for the high resolution image from the low resolution
one. However, these nonlinear methods are often computation-intensive and they can be one
to two order more expensive than linear methods for 2-D images. Furthermore, they may
become ineffective in the estimation of the edge orientation for the class of edge models with
fine scales(e.g., tightly packed edges that can be commonly found in the texture patterns).
Dept of ECE, GPREC, KNL Page 24
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
More effective interpolation methods are yet to be developed in order to accurately preserve
the edge orientation without introducing a high computation cost. Recently, the authors have
studied edge-forming methods as a postprocess of conventional interpolation schemes, to
form clear and sharp edges by applying partial differential equations (PDEs) of anisotropic
diffusion. Such PDE-based methods have proved to form reliable edges satisfactorily for
image zooming by integer and noninteger magnification factors, for both gray-scale and color
images.
In this article, we will introduce a new interpolation method,called the error-amended sharp
edge (EASE) scheme. The EASE scheme is based on the bilinear interpolation method;
however, the interpolation error will be amended by the interpolation error theorem in an
edge-adaptive fashion. In EASE, each resampling evaluation requires at most 12 pixel values
of the low resolution image for the estimation of the edge orientation, and at most seven pixel
values for the resampling. EASE can be implemented with ease. It is applicable to image
zooming by both integer and noninteger magnification factors conveniently. EASE turns out
to be similarly efficient as the C2 -bicubic and bicubic B-spline interpolation schemes;
however, it shows an ability to preserve edges much better than those conventional linear
interpolation schemes.
The organization of this article is as follows. The next section presents a brief review of
linear interpolation methods and the interpolation error theorem, as preliminaries. In the next
section, we introduce the EASE scheme for 1-D signals and 2-D images.
The section discusses strategies for the computation of the error amender in an edge-adaptive
manner and the estimation of the edge orientation. After this section we have presented the
numerical experiments to show superior properties of EASE in the preservation of edges.
Compared with linear methods such as the bilinear, the C1-and C2 -bicubic methods, and the
bicubic B-spline interpolators, the new interpolation scheme results in clearer and sharper
edges for all synthetic, natural, and medical images we have tested. Section V summarizes
our development and experiments.
Dept of ECE, GPREC, KNL Page 25
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
5.2 PRELIMINARIES
Discussed here are a number of interpolation methods, this is by no means an exhaustive list
but the methods shown tend to be those in common use in computer graphics. The main
attributes is that they are easy to compute and are stable. Interpolation as used here is
different to "smoothing", the techniques discussed here have the characteristic that the
estimated curve passes through all the given points. The idea is that the points are in some
sense correct and lie on an underlying but unknown curve, the problem is to be able to
estimate the values of the curve at any position between the known points. This section
begins with a brief review of linear interpolation methods. Then, we will present the
interpolation error theorem as a preliminary of our new interpolation scheme.
5.3 LINEAR INTERPOLATION METHODS
Linear interpolation is the simplest method of getting values at positions in between the data
points. The points are simply joined by straight line segments. Each segment (bounded by
two data points) can be interpolated independently.
The interpolation step of image resampling is to construct a 2-D continuous function u(x,y)
from its discrete image samples u(k,l), where x and y are real numbers and k and l are
integers.
It can be formally expressed as the convolution of the discrete image samples with a
continuous 2-D filter H2D
.................... (3.1)
Usually, the interpolation kernel H2D is selected to be symmetric and separable to reduce the
computational complexity
……………. (3.2)
Where H is symmetric, i.e., H (-x) =H(x). It is often required for the kernel H to satisfy the
zero crossing condition
H (0) = 1
Dept of ECE, GPREC, KNL Page 26
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
H (x) = 0, |x|=1, 2…… ……………(3.3)
And the partition of unity condition
………… (3.4)
The conditions in (3.3) guarantee that the image is not modified if it is resampled on the same
grid, and, therefore, the kernel can avoid smoothing and preserve high frequencies.Kernels
that fulfill (3.3) are called interpolators, while others are called approximators.The condition
(3.4) implies that the energy of the resampled image remains unchanged. In other words, the
mean brightness of the image is not altered when the image is interpolated or resampled.
Kernels that satisfy or fail (3.4) are named respectively direct current (DC)-constant or DC-
inconstant. It is known that superior kernels are interpolators and DC-constant. The converse
is not always true.
Here, for a completeness of the article, we present a few kernels of linear interpolation
methods, with which our new interpolation scheme will be compared. In particular, we
consider popular ones such as the linear, cubic, and cubic B-spline kernels
…….. (3.5)
Where a is a parameter, * denotes the convolution, and
Dept of ECE, GPREC, KNL Page 27
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Here,H3 is the cubic B-spline approximator , while HB- spline is its associated cubic B-spline
interpolator satisfying the zero crossing condition (3.3)and the partition of unity condition
(3.4) . The interpolator Hcubic is C1- continuous, in general; one can impose C2- continuity by
setting
a=-3/4.
5.4 INTERPOLATION ERROR THEOREM
The following theorem can be found in most textbooks dealing with introductory
numerical methods.
Theorem 1: (Interpolation Error Theorem): Let the interval be partitioned in to {a=
x0<x1<…..< Xn =b} and an N th-order polynomial Pn interpolate at the nodal points of the
partitioning. Assume that uN+1 (x) exists for each x Є[a,b]. Then, for every x Є [a,b], there is a
point ξЄ[a,b] such that
……….. (3.6)
Furthermore, assume that the points are uniformly spaced and max xЄ[a,b] | uN+1(x)| ≤ M
, for some M>0. Then
…….. (3.7)
When N=1, it follows from the theorem that for two points x0 and x0+h, there is a
point ξ between x0 and x0+h such that
……… (3.8)
For x = x0+ (j/k)h, where k is an integer (k≥2) and j= 1,…..,k-1, we have
Dept of ECE, GPREC, KNL Page 28
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
……… (3.9)
for some ξj Є (x0,x0+h). In particular, when k=2 and j=1, the above identity becomes
……….. (3.10)
For some ξ1 Є (x0, x0+h).
In the next section, we will explore the interpolation error theorem, particularly (3.9)
and (3.10), in order to derive an effective interpolation scheme. For later references, we
define the second-order Newton polynomial interpolating over {x i-1, xi,xi+1}, where xi- xi-1 =
xi+1- xi=h, as
………(3.11)
5.5. IMPLEMENTATION OF EASE
This section introduces EASE which tries to amend the error of the bilinear method
by adopting the interpolation error theorem in an edge-adaptive way. The only assumption we
need is that the given image is locally smooth.
A. EASE FOR 1-D SIGNALS
Dept of ECE, GPREC, KNL Page 29
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
We will begin with the EASE scheme applied for the interpolation of an 1-D signal. Pick a
point P Є (xi, xi+1) as in Fig. 1, where u is to be evaluated. For simplicity, we first let p be the
midpoint of xi and xi+1
Then it follows from (3.10) that
…………. (3.12)
Where Ci+1/2 is an error-amender defined as
………….. (3.13)
For some ξ1 Є (xi,xi+1).
The error-amender Ci+1/2 is ideally the vertical distance connecting the two points in
Fig. 1 marked by o and □. The error-amender is not available for the current interpolation;
however, it may be estimated by utilizing the following quantities:
……… (3.14)
Here it must be noticed that C L and C R can be considered as error-amenders when the
signal u is to be interpolated from a lower resolution. For example, since
Dept of ECE, GPREC, KNL Page 30
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
It follows from (3.10) that the quantity C L can be seen as an error-amender which represents
the interpolation error
…………… (3.15)
for some ξ2 Є (xi-1,xi+1) . Now we assume that the second derivative u” varies little over
(xi-1,xi+1). Then from (3.13) and (3.15), we have
Thus, assuming that the second derivative u “ varies little on each smooth portion of
the signal, we suggest the EASE scheme for the interpolation of 1-D signals
(by a magnification factor of 2 ) as follows:
……… (3.16)
Where CL and CR are defined as in (3.14) and
The “minmod” determines the direction of the error-amending. When the values CL and CR
have different signs, the interval (xi, xi+1) is assumed to contain either an edge or an
inflection point, and, therefore, the linear interpolation scheme can be accurate enough to
evaluate ui+1/2 . The minmod function chooses the minimum in modulus when and show the
same sign. The EASE scheme is an edge-adaptive interpolation scheme; it is nonlinear
overall due to the involvement of the minmod function.
Dept of ECE, GPREC, KNL Page 31
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
The above scheme can be applied for image zooming by a magnification factor of k ≥2 . The
EASE scheme for the interpolation of 1-D signals (by a magnification factor of k ≥2) can be
formulated as follows: for xi+j/k= xi+ j/k, j=1,….,k-1
………….(3.17)
Where
And Di-1(j/k) is defined to be the difference between,p2,1,i-1 and the linear
interpolation of ui-1 and ui+1, both evaluated at xi-1+2j/k
…………….(3.18)
Where p2,1,i-1 is defined in (3.11).
We close this subsection along with the following remarks.
• EASE has been developed based on the assumption that u” varies little. Thus, it may reveal
common artifacts (such as image blur and ringing) at pixels where the image content is
varying fast locally. The selection process in the minmod function is introduced in order to
reduce the
ringing artifact in the interpolation result and to incorporate an edge-adaption mechanism as
well. In practice, EASE has interpolated various images satisfactorily and more effectively
than other linear interpolation methods.
• EASE can be applied for image zooming by arbitrary magnification factor; for each
interpolation point, the evaluation can be performed by linear interpolation followed by an
error-amending. Note that (3.17) and (3.18) are still valid although j/k is replaced by a real
number ξЄ(0,1). Given CL and CR , the minmod function determines the same error-amending
direction for all sampling points xi+ξЄ (xi+xi+1).
B. EASE FOR 2-D IMAGES
In Fig. 2, we present an illustration of EASE to be applied for the (2× 2)-magnification of 2-
D images. The solid circular dots indicate pixels from the original image of low resolution.
Dept of ECE, GPREC, KNL Page 32
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
We begin with the interpolation for the points marked by □ , the aligned points. There, the
values can be computed by applying the 1-D EASE scheme presented in Section III-A. This
step can
be simply performed by computing a series of 1-D directional (horizontal or vertical)
interpolations.
Let all values at the aligned points be evaluated. Then, we must determine values at
points marked by }, the interior points. We will evaluate these values by trying to interpolate
along the local edge direction. In order to estimate the edge orientation, we first compute
absolute values of four directional Sobel derivatives at each circled point (i+1/2,j+1/2)
Dept of ECE, GPREC, KNL Page 33
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
…………..(3.19)
Assuming that the image content on the edges is locally bilinear, we can see that the
edge direction is between the two directions that evaluate the two smallest directional Sobel
derivatives. Furthermore, the two flattest directions can be proved to be adjacent
to each other, i.e., they differ by 45degrees ; see Section III-C below.
Let Dp and Dq be the two smallest directional Sobel derivatives, respectively, in the
vertical/horizontal direction and the 45 /135 degrees direction
………….(3.20)
Then, the interpolation formula along the edge direction can be derived as follows:
………….(3.21)
Dept of ECE, GPREC, KNL Page 34
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
The claim that the two flattest directions differ by 45 degrees plays an important role
in the estimation of the edge direction, because otherwise the edge orientation is difficult to
determine and the formula (3.21) is hardly meaningful. It is straightforward to apply the
above scheme for image zooming of a k×k –magnification where k≥2 is an integer. The
aligned points can again be determined as for 1-D signals. For the interior points ( s), the four
directional Sobel derivatives can be computed as in image zooming by (2×2)-magnification.
Once the two flattest directions are determined, the interpolation along the estimated edge
direction can be fulfilled correspondingly for all (k-1)×(k-1) interior sampling points,
utilizing the same estimated edge orientation. For example, assume that D1(horizontal) and
D2 (450) are the two smallest directional Sobel derivatives, as in Fig. 3. Then the
interpolation procedure for every interior point (marked by ) can be summarized as follows.
1) Compute four values at the corresponding aligned points( □s) which are in either the
horizontal or 450 direction from the interior point(o) . The 1-D EASE scheme is utilized for
the computation of values at the aligned points.
2) Obtain L1 and L2 which interpolate linearly the aligned values for the interior point in the
horizontal and 450 directions, respectively.
3) Evaluate the value at o ,u0 , utilizing the formula (3.21)
…………..(3.22)
Dept of ECE, GPREC, KNL Page 35
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
where L1 and L2 are obtained at the previous step.
Note that EASE utilizes 12 points in maximum for the estimation of the edge
orientation: the four corner points and two nearest points outside each of four sides. On the
other hand, it
fulfills the sampling by utilizing 3, 5, 6, or 7 pixel values of the low resolution image. It is
clear to see that the support of the EASE interpolation kernel is a proper subset of those of
cubic
schemes such as the C2-bicubic and bicubic B-spline methods.
The basic idea of EASE is applicable for higher-order linear interpolation schemes
along with corresponding error-amenders. However, higher-order interpolation schemes may
introduce higher levels of image blur or checkerboard effect. The major challenge in image
zooming is to estimate local edges in order not to interpolate the data across them. EASE is
designed to be both low order (requiring a small support for the interpolation kernel) and
edge-adaptive.
Dept of ECE, GPREC, KNL Page 36
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
6. EXPERIMENTAL RESULTS
Input image:
RGB to Gray 100% of the image
Dept of ECE, GPREC, KNL Page 37
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Image zoomed to 400% using nearest neighborhood method in Matlab
Dept of ECE, GPREC, KNL Page 38
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Imaged Zoomed using EASE Scheme by a factor 4
Dept of ECE, GPREC, KNL Page 39
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
Comparison of EASE and nearest neighborhood methods
Dept of ECE, GPREC, KNL Page 40
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
7. Source Code:
%NOTE:program for ease k*k */
function a=e2(img,img2,m,n,k);
k=4;
img2=imread('kalam.jpg');
imview(img2);
%Function to convert RGB image to gray image*/
[m,n,z]=size(img2);
%To conver the data clause of the image to double*/
if z==3
img1=rgb2gray(img2);
imview(img1);
else
img1=img2;
end
img=im2double(img1);
% Zero padding and preallocating the memory*/
a=zeros(k*m+k*3,k*n+k*3);
%Transfering the pixel values from input image to the output image*/
count2=0;
for j=k+1:k:(k*n+1)
count1=0;
count2=count2+1;
for i=k+1:k:(k*m+1)
count1=count1+1;
a(i,j)=a(i,j)+img(count1,count2);
end
Dept of ECE, GPREC, KNL Page 41
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
end
%To find the aligned points in horizontal direction*/
for j=k+1:k:k*m
for i=k+2:k:k*n
%Calculating minmod function*/
c1=a(j,i-1)-(a(j,i-k-1)+a(j,i+k-1))*0.5;
c2=a(j,i+k-1)-(a(j,i-1)+a(j,i+2*k-1))*0.5;
if((c1*c2)>0)
if(abs(c1)<=abs(c2))
x=c1;
else
x=c2;
end
else
x=0;
end
for p=1:1:k-1
x1=4*x*(p/k)*(1-p/k);
a(j,i+p-1)=a(j,i+p-1)+a(j,i-1)*(1-p/k)+(p/k)*a(j,i+k-1)+x1*0.25;
end
end
end
%To find the aligned points in vertical direction*/
for i=k+1:k:(k*n+1)
Dept of ECE, GPREC, KNL Page 42
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
for j=k+2:k:(k*m+2)
c3=a(j-1,i)-(a(j-k-1,i)+a(j+k-1,i))*0.5;
c4=a(j+k-1,i)-(a(j-1,i)+a(j+2*k-1,i))*0.5;
if((c3*c4)>0)
if(abs(c3)<=abs(c4))
y=c3;
else
y=c4;
end
else
y=0;
end
for p=1:1:k-1
x1=4*y*(p/k)*(1-p/k);
a(j+p-1,i)=a(j+p-1,i)+a(j-1,i)*(1-p/k)+(p/k)*a(j+k-1,i)+x1*0.25;
end
end
end
%To find the interior points*/
for j=k+1:k:k*m+1
for i=k+1:k:k*n+1
%To estimate the edge direction using sobel derivatives*/
x2=a(j,i)-(a(j,i-k)+a(j,i+k))*0.5;
x3=a(j,i+k)-(a(j,i)+a(j,i+2*k))*0.5;
if((x2*x3)>0)
Dept of ECE, GPREC, KNL Page 43
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
if(abs(x2)<=abs(x3))
x1=x2;
else
x1=x3;
end
else
x1=0;
end
e1=(a(j,i)+a(j,i+k))*0.5+x1*0.25;
x5=a(j+k,i)-(a(j+k,i-k)+a(j+k,i+k))*0.5;
x6=a(j+k,i+k)-(a(j+k,i)+a(j+k,i+2*k))*0.5;
if((x5*x6)>0)
if(abs(x5)<=abs(x6))
x4=x5;
else
x4=x6;
end
else
x4=0;
end
e2=(a(j+k,i)+a(j+k,i+k))*0.5+x4*0.25;
x8=a(j,i)-(a(j-k,i)+a(j+k,i))*0.5;
x9=a(j+k,i)-(a(j,i)+a(j+2*k,i))*0.5;
if((x8*x9)>0)
if(abs(x8)<=abs(x9))
x7=x8;
Dept of ECE, GPREC, KNL Page 44
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
else
x7=x9;
end
else
x7=0;
end
e3=(a(j,i)+a(j+k,i))*0.5+x7*0.25;
x11=a(j,i+k)-(a(j-k,i+k)+a(j+k,i+k))*0.5;
x12=a(j+k,i+k)-(a(j,i+k)+a(j+2*k,i+k))*0.5;
if((x11*x12)>0)
if(abs(x11)<=abs(x12))
x10=x11;
else
x10=x12;
end
else
x10=0;
end
e4=(a(j,i+k)+a(j+k,i+k))*0.5+x10*0.25;
d1=abs(a(j+k,i+k)+2*e1+a(j,i+k)-a(j+k,i)-2*e3-a(j,i));
d2=(sqrt(2))*abs(e1+a(j,i+k)+e4-e3-a(j+k,i)-e2);
d3=abs(a(j,i)+2*e1+a(j,i+k)-a(j+k,i)-2*e2-a(j+k,i+k));
d4=(sqrt(2))*abs(e3+a(j,i)+e1-e2-a(j+k,i+k)-e4);
for j1=1:1:k-1
for i1=1:1:k-1
k1=i1+j1;
k2=i1-j1;
Dept of ECE, GPREC, KNL Page 45
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
if(d1<=d3)
dp=d1;
lp=(1-i1/k)*a(j+j1,i)+(i1/k)*a(j+j1,i+k);
elseif(d1>d3)
dp=d3;
lp=(1-j1/k)*a(j,i+i1)+(j1/k)*a(j+k,i+i1);
end
if(d2<=d4)
dq=d2;
if(k1<=k)
lq=(1-i1/k1)*a(j+k1,i)+(i1/k1)*a(j,i+k1);
elseif(k1>k)
lq=((k-i1)/(2*k-k1))*a(j+k,i+k1-k)+(1-((k-i1)/(2*k-k1)))*a(j+k1-k,i+k);
end
elseif(d2>d4)
dq=d4;
if(j1<=i1)
lq=(1-j1/(k-k2))*a(j,i+k2)+(j1/(k-k2))*a(j+k-k2,i+k);
elseif(j1>i1)
lq=(1-i1/(k+k2))*a(j-k2,i)+(i1/(k+k2))*a(j+k,i+k+k2);
end
end
a(j+j1,i+i1)=(1.414*dq*lp/(dp+1.414*dq))+(dp*lq)/(dp+1.414*dq);
end
end
end
end
Dept of ECE, GPREC, KNL Page 46
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
%Cropping the image to the required size*/
a1=a(k+1:k*m+2,k+1:k*n+2);
%Output image*/
imview(a1)
Dept of ECE, GPREC, KNL Page 47
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
8. CONCLUSIONS
We have introduced a new interpolation method, called the EASE scheme.
EASE is based on the bilinear method and tries to amend the error by utilizing
the interpolation error theorem in an edge-adaptive way.
Effective strategies have been suggested for the computation of the error-
amender and the estimation of edge directions by utilizing local pixel values.
The new interpolation scheme has proved better in accuracy and reliability
than linear interpolation methods such as the bilinear scheme, the C1- and C2-
bicubic methods, and the bicubic B-spline interpolator. EASE turns out to be
similarly efficient as cubic interpolation schemes.
Dept of ECE, GPREC, KNL Page 48
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
9. BIBLIOGRAPHY
[1] T. Blu, P. Thévenaz, and M. Unser, “Minimum support interpolators with optimum
approximation properties,” in Proc. IEEE Int. Conf. Image Processing, 1998, pp. 242–245.
[2] T. Blu, P. Thévenaz, and M. Unser, “Linear interpolation revitalized,” IEEE Trans. Image
Processing, vol. 13, no. 5, pp. 710–719, May 2004.
[3] W. Carey, D. Chuang, and S. Hemami, “Regularity-preserving image interpolation,”
IEEE Trans. Image Process., vol. 8, no. 9, pp.1293–1297, Sep. 1999.
[4] Y. Cha and S. Kim, “Edge-forming methods for color image zooming,” IEEE Trans.
Image Process., vol. 15, no. 8, pp. 2315–2323, Aug. 2006.
[5] Y. Cha and S. Kim, “Edge-forming methods for image zooming,” J. Math. Imag. Vis.,
vol. 25, no. 3, pp. 353–364, 2006.
[6] R. Gonzalez and R.Woods, Digital Image Processing, 2nd ed. Upper Saddle River, NJ:
Prentice-Hall, 2002.
[7] H. S. Hou and H. C. Andrews, “Cubic splines for image interpolation and digital
filtering,” IEEE Trans. Acoust., Speech, Signal Process., vol. ASSP-26, no. 6, pp. 508–517,
Jun. 1978.
[8] K. Jensen and D. Anastassiou, “Subpixel edge localization and the interpolation of still
images,” IEEE Trans. Image Process., vol. 4, no. 3, pp. 285–295, May 1995.
[9] R. G. Keys, “Cubic convolution interpolation for digital image processing,” IEEE Trans.
Acoust., Speech, Signal Process., vol. ASSP-29, no. 6, pp. 1153–1160, Jun. 1981.
[10] T. Lehmann, C. Gönner, and K. Spitzer, “Survey: Interpolation methods in medical
image processing,” IEEE Trans. Med. Imag., vol.18, no. 11, pp. 1049–1075, Nov. 1999.
Dept of ECE, GPREC, KNL Page 49
The Error-Amended Sharp Edge (EASE) Scheme for Image Zooming Using MATLAB
[11] T. Lehmann, C. Gönner, and K. Spitzer, “Addendum: B-spline interpolation in medical
image processing,” IEEE Trans. Med. Imag., vol.20, no. 7, pp. 660–665, Jul. 2001.
[12] X. Li and M. Orchard, “New edge-directed interpolation,” IEEE Trans. Image Process.,
vol. 10, no. 10, pp. 1521–1527, Oct. 2001.
[13] P. Thévenaz, T. Blu, and M. Unser, “Interpolation revisited,” IEEE Trans. Med. Imag.,
vol. 19, no. 7, pp. 739–758, Jul. 2000.
[14] M. Unser, A. Aldroubi, and M. Eden, “Enlargement and reduction of digital images with
minimum loss of information,” IEEE Trans. Image Process., vol. 4, no. 3, pp. 247–257, Mar.
1995.
Dept of ECE, GPREC, KNL Page 50