Full Download Fuzzy Logic For Image Processing A Gentle Introduction Using Java SpringerBriefs in Electrical and Computer Engineering Caponetti Laura Castellano Giovanna PDF
Full Download Fuzzy Logic For Image Processing A Gentle Introduction Using Java SpringerBriefs in Electrical and Computer Engineering Caponetti Laura Castellano Giovanna PDF
com
https://textbookfull.com/product/modern-algorithms-for-image-
processing-computer-imagery-by-example-using-c-1st-edition-vladimir-
kovalevsky/
textbookfull.com
https://textbookfull.com/product/image-processing-and-computer-vision-
in-ios-oge-marques/
textbookfull.com
https://textbookfull.com/product/calcium-binding-proteins-of-the-ef-
hand-superfamily-from-basics-to-medical-applications-claus-w-heizmann/
textbookfull.com
https://textbookfull.com/product/london-londoners-and-the-great-fire-
of-1666-1st-edition-jacob-f-field/
textbookfull.com
https://textbookfull.com/product/harpers-textbook-of-pediatric-
dermatology-veronica-kinsler/
textbookfull.com
https://textbookfull.com/product/regenerative-development-and-design-
a-framework-for-evolving-sustainability-1st-edition-regenesis-group/
textbookfull.com
SPRINGER BRIEFS IN
ELEC TRIC AL AND COMPUTER ENGINEERING
Laura Caponetti
Giovanna Castellano
123
SpringerBriefs in Electrical and Computer
Engineering
More information about this series at http://www.springer.com/series/10059
Laura Caponetti Giovanna Castellano
•
123
Laura Caponetti Giovanna Castellano
Dipartimento di Informatica Dipartimento di Informatica
Università degli Studi di Bari Aldo Moro Università degli Studi di Bari Aldo Moro
Bari Bari
Italy Italy
Laura Caponetti
Giovanna Castellano
Preface
Mark Twain
This book is the result of many years of teaching image processing and fuzzy logic
taught by the authors for undergraduate courses. Most of the material used is also
the result of fertile interactions with the students whose case studies contributed a
lot in the Java implementation of algorithms and methods. The volume has been
conceived as a gentle introduction to fuzzy logic approaches useful in image pro-
cessing tasks.
First we describe image processing algorithms based on fuzzy logic under a
methodological point of view. Then, we provide some practical applications
without passing over the important formal details. We tried to identify the most
important works that researchers have done in the area of fuzzy image processing,
and we described and illustrated them through Java examples that the interested
readers can easily follow.
The book covers both theoretical and practical applications of fuzzy techniques
in image processing. Accordingly, the chapters have been grouped into two parts:
Fundamentals of Fuzzy Image Processing and Applications to Image Processing.
In the first part, we explain how image processing can take advantage of fuzzy
logic, giving basic theoretical aspects of both fuzzy logic and image processing
through five chapters. Chapter 1 is devoted to the basics of image representation
using Java. Chapter 2 deals with low-level image processing. In Chap. 3 the reader
will find the basic concepts of fuzzy logic, starting from fuzzy set theory up to fuzzy
systems. Chapter 4 discusses the issue of vagueness in digital images, that is the
motivation of using fuzzy techniques to process images. Finally, Chap. 5 introduces
the Java language and its use for image processing.
In the second part, we present four chapters covering different image processing
tasks, namely color contrast enhancement, image segmentation, morphological
analysis, and image thresholding. For each task an example of practical application
vii
viii Preface
is described. Some examples are presented in the medical domain, using light
microscope images provided by the Dipartimento di Endocrinologia ed Oncologia
Molecolare e Clinica of the University “Federico II” of Naples, Italy. Lastly, the
appendix provides some Java code examples that the user can easily run which will
help create a concrete feeling of the potential fuzzy image processing.
We believe that this volume will provide a state-of-art coverage of various
aspects related to fuzzy image processing and show the potential of fuzzy tech-
niques in solving image processing problems. We hope this book will serve as a
reference for scientists and students in this area, as well as a means to stimulate
some new ideas for researchers.
We are grateful to a number of people from academic circles as well as from
domestic environments who have contributed to the writing of this book in many
different ways. In particular, we thank all the members of the CILab (Computational
Intelligence Laboratory) of the Department of Informatics at the University of Bari
“Aldo Moro” for giving answers to our questions at the right time. We thank
Menina Di Gennaro for reading the first draft of some chapters and giving helpful
suggestions at the early stages of the work. Our special thanks go to Mara Basile
and Vito Corsini who gave their contribution to the research on morphology and
segmentation applied to the medical domain. We also thank our Ph.D. student
Przemyslaw Gorecky for his contribution on document analysis by fuzzy approa-
ches. Finally, we thank our students Antonio Vergaro, Francesco Tangari, Gabriella
Casalino, Marco Lucarelli, and Massimo Minervini for developing some Java
examples cited in this book. The contribution of everyone is truly appreciated.
ix
x Contents
Laura Caponetti received her degree in Physics at the University of Bari, Italy,
in 1972. She is Associate Professor (retired) at the Computer Science Department
of the University of Bari “A. Moro”, where she has been working from 1982 as
Assistant Professor. Her research interests are in image processing and computer
vision. Her research (https://www.researchgate.net/profile/Laura_Caponetti) spans a
range of topics including image segmentation, 3D object recognition, 3D scene
analysis, fuzzy and image processing. She has published over eighty papers and she
is a referee of international journals and conferences. She has been a member of the
scientific committee of the Master in Remote Sensing Techniques and a member
of the Council of Ph.D. in Computer Science at the Bari University. She has been a
lecturer of Information Processing Systems (Sistemi di Elaborazione della infor-
mazione) for the degree course in Computer Science and Computer System
Foundations (Fondamenti di Informatica) for the degree course in Civil
Engineering. Moreover, she has been a lecturer of Image Processing for the degree
course in Computer Science and for the Master in Remote Sensing Techniques.
Currently she is a referee of the “Ministero dell’Istruzione, dell’Università e della
Ricerca” (http://www.istruzione.it/). Also, she is a member of many scientific
associations such as IAPR (Italian Chapter), AICA, and AIIA.
Giovanna Castellano is Associate Professor at the Computer Science Department
of the University of Bari “A. Moro”, Italy. In 1993 she received her degree in
Informatics from the University of Bari. From 1993 to 1995 she was a fellow
researcher at the CNR Institute for Signal and Image Processing in Bari, Italy. In
2001 she got a Ph.D. in Informatics from the University of Bari, where she became
Assistant Professor in 2002. Her research interests are mainly focused on compu-
tational intelligence, with special focus on fuzzy systems, neural networks,
neuro-fuzzy modeling, fuzzy clustering, granular computing, and fuzzy image
processing. Her current research activity concerns the application of fuzzy tech-
niques in image processing and retrieval. Within these research areas, she has been
co-author of more than 170 papers published on scientific journals, book
xiii
xiv About the Authors
The first part of the book introduces the fundamental concepts of fuzzy image
processing; namely, we provide basic concepts of low-level image processing and
fundamental principles of fuzzy logic. These concepts are equipped with a basic
introduction to the Java programming language.
Chapter 1
Image Representation Using Java
Abstract This chapter covers some basic concepts of gray-level and color image
representation. Digital images are logically represented using a matrix of elements,
each element having a single value in case of gray-level images and three/four values
in case of color images. The chapter also introduces the most used color models and
the representation of images provided by Java.
1.1 Introduction
Digital image processing refers to all those tasks that involve processing a digital
image by a computer. We can distinguish among low-level, medium-level, and high-
level processing. In low-level processing tasks we have a digital image as input and
a digital image as output—for example an image improved for the visualization. In
high-level processing the outcome is a description of the content of the input image.
In medium-level processing some features are obtained from the input image, for
examples edges or regions. This book mainly focuses on low-level and medium-
level image processing.
This chapter provides a brief introduction to digital image processing. The aim is
to introduce the fundamentals of gray-level and color image processing, with special
focus on the tasks considered as applications of fuzzy techniques in the second part
of the volume. For further details about the basics of image processing, the reader is
referred to specific bibliography [1, 3].
Fig. 1.3 A gray-level image with a high dynamic range and b low dynamic range
There are basically two ways to specify colors in a computer. The RGB (Red Green
Blue) definition is the more natural approach in terms of the human visual system
and it is also the approach used to drive computer monitors. In fact the RGB system
6 1 Image Representation Using Java
matches with the fact that the human eye is strongly perceptive to red, green, and
blues primaries.
The secondary colors CMY (Cyan Magenta Yellow) are used for printing and are
basically complementary to RGB. However, the RGB and CMY color models are not
well suited for describing color for human interpretation. Defining a specific color
using a RGB set of numbers is very difficult, unless it is one of the end members.
Indeed, one does not refer to the color of an object by giving the percentage of each
primary component.
For these reasons other color representations are adopted, such as the HSB rep-
resentation where the features used to distinguish one color from another are Hue,
Saturation, and Brightness. Hue is an attribute associated with the dominant wave-
length in a mixture of light waves. Hue represents dominant color as perceived by an
observer. Saturation refers to the relative purity or the amount of white light mixed
with the hue. The pure spectrum colors are fully saturated and the degree of saturation
being inversely proportional to the amount of light added. Brightness embodies the
chromatic notion of intensity. Hue and saturation together are called chromaticity so
a color can be represented by its brightness and chromaticity.
A color model or color system is a subspace of a three-dimensional coordinate
system in which each color is represented by a single point. Generally a color model is
oriented either toward hardware (as for monitor and printers) or toward applications.
The most common hardware-oriented color models are
• the RGB model for color monitor and color video cameras;
• the CMY model for color printers;
By contrast, the HSV (Hue, Saturation, and Value) and HSI (Hue, Saturation,
and Intensity) color models, referred to the HSB representation, are user/application
oriented and correspond to the way humans perceive and describe color using the
words tint, shade, and tone.
saturation, and value refer to tint, shade, and tone. The HSV model is defined in a
subspace represented by a hexacone or six-sided cone (Fig. 1.5). The HSV is based
on cylindrical coordinate. A cylindrical coordinate system is a three-dimensional
coordinate system (ρ, φ, z) that specifies point positions by the distance ρ from a
chosen reference axis, the direction φ from the axis relative to a chosen reference
direction, and the distance z from a chosen reference plane perpendicular to the axis.
Hue, corresponding to φ, is expressed as an angle around a color hexagon using the
red axis as the 0 axis. Value, corresponding to z, is measured along the axis of the
cone lying in the center of the color hexagon. The end of the axis V = 0 represents
black, while the end V = 1 is white. Thus the cone axis represents all shades of gray.
Saturation, corresponding to ρ, is measured as the distance from the V axis.
The conversion from a RGB value to a HSV value is given in the following [2].
We define Δ = max(R, G, B) − min(R, G, B). As concerns the Hue component,
there are two cases. If R = G = B then Δ = 0 and the Hue is undefined. If Δ > 0
then we compute
8 1 Image Representation Using Java
R ∗ = (max(R, G, B) − R)/Δ
G ∗ = (max(R, G, B) − G)/Δ
B ∗ = (max(R, G, B) − B)/Δ
and then
⎧ ∗
⎨ B − G∗ if R = max(R, G, B)
∗
H = R ∗ − B ∗ + 2 if G = max(R, G, B)
⎩ ∗
G − R ∗ + 4 if B = max(R, G, B)
where Cmax is the maximum value in the RGB scale (generally Cmax = 255).
The HSV/HSI systems provide a more natural way to define a color: the value
of hue sets the color according to the colors of the rainbow red, orange, yellow,
green, blue, violet, and back to red. Decreasing the value of brightness moves the
color toward black and decreasing the saturation moves the color toward white. The
10 1 Image Representation Using Java
reason is that HSV/HSI systems allow movements in color space which correspond
more closely to what we mean by tint and shade. An instruction like add white is
easy in HSI but not so obvious in RGB. The HSV color system is somewhat similar
to HSI system, but its aim is to present colors that are meaningful when interpreted
in terms of a color artist palette.
To represent a color image it is necessary to define the color model. Then a color
pixel can be represented directly by means of three components (e.g., Red, Green,
Blue). If a byte is used to represent each component, it is possible to represent
256 × 256 × 256 different colors (about 16 millions). The BitMaP format uses the
direct representation of the color, also known as true color representation. Often to
limit the memory size a number of four or eight bits are used for each pixel. In this
case it is necessary to use also a palette or colormap, that is a look-up table in which
every element contains a tuple of three values RGB. In this case each pixel value
is an entry in the look-up table. Then this representation is an indirect or indexed
representation of the color value. The GIF, TIF, and PNG formats use an indexed
representation of the color and use a look-up table of 4 or 8 bit, hence each pixel is
an index into a palette of 16 or 256 colors.
Java permits to memorize and process a color image by means of the package
image. In Chap. 5 an introduction to Java and ImageJ plugin for image processing
is presented.
Java represents a RGB color image by an array of pixels. Each color pixel is
represented in a packed mode using a 32 bit integer value, where the high order byte
represents the alpha component followed by the Red, Green, and Blue components.
The alpha value represents the level of transparency of the pixel varying from 0
(transparent pixel, i.e., invisible) to 255 (opaque pixel). In a gray-level image the
three components (R, G, B) have the same value. To transform a color pixel into a
gray-level one we can use the following formulas:
I = (R + G + B) (1.7)
Since the eye is more sensible to Green and Red than to Blue color, usually a
weighted sum that takes in account the different perception of the human eye for the
three fundamental colors, is used
Java supports several image formats for RGB true color images, such as TIFF,
BMP, JPEG, PNG, and RAW. Moreover it supports formats for RGB indexed
color images such as GIF, PNG, BMP, and TIFF. In particular the Java class
ColorProcessor provides a support to process easily color images in RGB and
HSB spaces by offering the following functions:
1.4 Color Image Representation Using Java 11
The Listing 1.2 shows an example of Java plugin to convert a RGB value, packed
in an integer c, into the three fundamental components [r g b] and then to invert
each component and produce a new image with the color scale inverted. To isolate
each color component, for each pixel [u,v] a bit-wise AND operation is applied
to an appropriate bit mask expressed in hexadecimal notation. After the extracted
1.4 Color Image Representation Using Java 13
bits are shifted right 16 bit positions for the r component, and right 8 positions for
the g component, as shown in the Listing 1.2. The details of the code can be better
understood by reading Chap. 5 about Java introduction for image processing.
References
1. Burger, W., Burge, M.J.: Digital Image Processing: An Algorithmic Introduction Using Java.
Springer Science & Business Media, Heidelberg (2009)
2. Foley, J.D., Van Dam, A.: Fundamentals of Interactive Computer Graphics, vol. 2. Addison-
Wesley, Reading (1982)
3. Gonzalez, R.C., Woods, R.E.: Digital Image Processing. Prentice Hall, Upper Saddle River
(2008)
Random documents with unrelated
content Scribd suggests to you:
INDIA AND THE BOERS.
The Boers are a sober, industrious and most hospitable
body of peasantry.—Dr. Livingstone.
PRICE.
PRICE.