100% found this document useful (8 votes)
39 views

Full Download Fuzzy Logic For Image Processing A Gentle Introduction Using Java SpringerBriefs in Electrical and Computer Engineering Caponetti Laura Castellano Giovanna PDF

Image

Uploaded by

akwlngalia
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (8 votes)
39 views

Full Download Fuzzy Logic For Image Processing A Gentle Introduction Using Java SpringerBriefs in Electrical and Computer Engineering Caponetti Laura Castellano Giovanna PDF

Image

Uploaded by

akwlngalia
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Download the full version of the textbook now at textbookfull.

com

Fuzzy Logic for Image Processing A Gentle


Introduction Using Java SpringerBriefs in
Electrical and Computer Engineering Caponetti
Laura Castellano Giovanna
https://textbookfull.com/product/fuzzy-logic-for-
image-processing-a-gentle-introduction-using-java-
springerbriefs-in-electrical-and-computer-
engineering-caponetti-laura-castellano-giovanna/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Control Oriented Modelling of AC Electric Machines


SpringerBriefs in Electrical and Computer Engineering
Masmoudi
https://textbookfull.com/product/control-oriented-modelling-of-ac-
electric-machines-springerbriefs-in-electrical-and-computer-
engineering-masmoudi/
textbookfull.com

Modern Algorithms for Image Processing: Computer Imagery


by Example Using C# 1st Edition Vladimir Kovalevsky

https://textbookfull.com/product/modern-algorithms-for-image-
processing-computer-imagery-by-example-using-c-1st-edition-vladimir-
kovalevsky/
textbookfull.com

Image Processing and Computer Vision in iOS Oge Marques

https://textbookfull.com/product/image-processing-and-computer-vision-
in-ios-oge-marques/

textbookfull.com

Embeddings in Natural Language Processing Theory and


Advances in Vector Representations of Meaning 1st Edition
Mohammad Taher Pilehvar
https://textbookfull.com/product/embeddings-in-natural-language-
processing-theory-and-advances-in-vector-representations-of-
meaning-1st-edition-mohammad-taher-pilehvar/
textbookfull.com
Calcium Binding Proteins of the EF Hand Superfamily From
Basics to Medical Applications Claus W. Heizmann

https://textbookfull.com/product/calcium-binding-proteins-of-the-ef-
hand-superfamily-from-basics-to-medical-applications-claus-w-heizmann/

textbookfull.com

London Londoners and the Great Fire of 1666 1st Edition


Jacob F. Field

https://textbookfull.com/product/london-londoners-and-the-great-fire-
of-1666-1st-edition-jacob-f-field/

textbookfull.com

HCI International 2014 Posters Extended Abstracts


International Conference HCI International 2014 Heraklion
Crete Greece June 22 27 2014 Proceedings Part II 1st
Edition Constantine Stephanidis (Eds.)
https://textbookfull.com/product/hci-international-2014-posters-
extended-abstracts-international-conference-hci-
international-2014-heraklion-crete-greece-june-22-27-2014-proceedings-
part-ii-1st-edition-constantine-stephanidis-eds/
textbookfull.com

Harper's textbook of pediatric dermatology Veronica


Kinsler

https://textbookfull.com/product/harpers-textbook-of-pediatric-
dermatology-veronica-kinsler/

textbookfull.com

Chinese Sociology: State-Building and the


Institutionalization of Globally Circulated Knowledge 1st
Edition Hon Fai Chen (Auth.)
https://textbookfull.com/product/chinese-sociology-state-building-and-
the-institutionalization-of-globally-circulated-knowledge-1st-edition-
hon-fai-chen-auth/
textbookfull.com
Regenerative Development and Design A Framework for
Evolving Sustainability 1st Edition Regenesis Group

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

Fuzzy Logic for


Image Processing
A Gentle
Introduction Using
Java

123
SpringerBriefs in Electrical and Computer
Engineering
More information about this series at http://www.springer.com/series/10059
Laura Caponetti Giovanna Castellano

Fuzzy Logic for Image


Processing
A Gentle Introduction Using Java

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

ISSN 2191-8112 ISSN 2191-8120 (electronic)


SpringerBriefs in Electrical and Computer Engineering
ISBN 978-3-319-44128-3 ISBN 978-3-319-44130-6 (eBook)
DOI 10.1007/978-3-319-44130-6

Library of Congress Control Number: 2016947389

© The Author(s) 2017


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part
of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations,
recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission
or information storage and retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this
publication does not imply, even in the absence of a specific statement, that such names are exempt
from the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this
book are believed to be true and accurate at the date of publication. Neither the publisher nor the
authors or the editors give a warranty, express or implied, with respect to the material contained
herein or for any errors or omissions that may have been made.

Printed on acid-free paper

This Springer imprint is published by Springer Nature


The registered company is Springer International Publishing AG Switzerland
To Alfred, Philip and Vito and all my
friends

Laura Caponetti

To David and Serena, improved images


of me

Giovanna Castellano
Preface

The secret to getting ahead is getting started.

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.

Bari, Italy Laura Caponetti


June 2016 Giovanna Castellano
Contents

Part I Fundamentals of Fuzzy Image Processing


1 Image Representation Using Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Gray-Level Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Color Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Color Image Representation Using Java . . . . . . . . . . . . . . . . . . . . . 10
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Low-Level Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Contrast Enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.1 Gray-Level Transformation . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2 Thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.3 Histogram Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3 Image Smoothing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 Edge Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4.1 Canny Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4.2 Optimization-Based Operators . . . . . . . . . . . . . . . . . . . . . . . 36
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3 Basics of Fuzzy Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Fuzzy Set Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3 Fuzzy Rule-Based Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.1 Fuzzification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.3.2 Fuzzy Rule Base and Inference Engine . . . . . . . . . . . . . . . . 43
3.3.3 Defuzzification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4 Fuzzy Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.1 Design of Fuzzy Rule-Based Systems . . . . . . . . . . . . . . . . . 46
3.4.2 Neuro-Fuzzy Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

ix
x Contents

4 Fuzzy Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53


4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 Image Fuzzification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.2.1 Fuzzy Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.3 Image Defuzzification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4 Fuzziness Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5 Java for Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.1 Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2 Java for Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.3 Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.4 ImageJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.4.1 Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.4.2 Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.5 Fuzzy Systems in Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Part II Application to Image Processing


6 Color Contrast Enhancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.2 Multichannel Image Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3 Fuzzy Techniques for Color Enhancement . . . . . . . . . . . . . . . . . . . 86
6.4 A Fuzzy Rule-Based System for Color Enhancement . . . . . . . . . . . 87
6.5 Example: Natural Image Enhancement . . . . . . . . . . . . . . . . . . . . . . 88
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
7 Image Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.2 The Segmentation Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
7.3 Methods for Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7.3.1 Crisp Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.3.2 Fuzzy Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
7.3.3 Spatial Fuzzy Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
7.4 Example: Color Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.5 Example: Texture Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8 Morphological Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.1 Mathematical Morphology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.1.1 Morphological Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.2 Fuzzy Morphology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.3 Example: Biological Image Segmentation . . . . . . . . . . . . . . . . . . . . 113
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Contents xi

9 Image Thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121


9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.2 Otzu Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
9.3 Fuzzy Thresholding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
9.4 Example: Document Image Analysis . . . . . . . . . . . . . . . . . . . . . . . 127
9.4.1 Document Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
9.4.2 Region Classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Appendix A: Java Code References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
About the Authors

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

collections, and international conference proceedings. Working on these topics she


joined a number of research projects and she organized a number of special sessions
and workshops in international conferences. She is Associate Editor of the journal
Information Sciences (ISSN:0020-0255) and a member of the editorial board of
several international journals.
Part I
Fundamentals of Fuzzy
Image Processing

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

Intelligence is not to make no mistakes, but quickly to see how to


make them good.
Bertolt Brecht

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

A digital image is a two-dimensional representation of an object or a three-


dimensional scene resulting from a digitalization process (see Fig. 1.1). An image
can be considered as a two-dimensional digital signal acquired by means of two
basic processes: sampling in the spatial domain and quantization in the value/level
domain. In other words, a digital image is defined as a two-dimensional digital func-
tion f (x, y) that is a mapping from a spatial coordinate domain D into an intensity
value domain D  :
f : D → D

where D is a finite domain consisting of pairs of discrete coordinates (x, y) and D  is


the discrete domain of values called gray levels. Typically the domain D  is the range
[0, 255]. A digital image consists of a finite set of elements having a location (x, y)
and a value denoted by l. Each element f (x, y) is called pixel—picture element.

© The Author(s) 2017 3


L. Caponetti and G. Castellano, Fuzzy Logic for Image Processing,
SpringerBriefs in Electrical and Computer Engineering,
DOI 10.1007/978-3-319-44130-6_1
4 1 Image Representation Using Java

Fig. 1.1 Image acquisition and digitalization process

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].

1.2 Gray-Level Images

A digital image f having a finite number of non negative values—typically in the


range [0, 255]—is called gray-level image. It can be represented by a matrix of
N × M elements, where N is the row number and M the column number. Each
element f ( j, k) for 0 ≤ j ≤ N and 0 ≤ k ≤ M is a pixel having abscissa x = k
and ordinate y = − j. Then a digital image can be represented using the logical
coordinate system (x, y) or the image coordinate system ( j, k), where x = k is the
column and y = − j is the row (see Fig. 1.2).
1.2 Gray-Level Images 5

Fig. 1.2 Image coordinate system

Fig. 1.3 A gray-level image with a high dynamic range and b low dynamic range

A digital image can be described by means of some features such as


• dimension: the number of pixels in the image.
• size: the number of rows and columns of the image or also the size (width and
height) expressed in cm/inch.
• spatial resolution: the number of pixels for size unity expressed in dot per inch
(dpi).
• dynamic range or resolution in the gray-level range: the number of different gray
levels actually used in the image. For example if the range is [0, 255], an image
using all 256 levels presents a high dynamic range. Conversely, an image using
only few levels presents a very low dynamic range (Fig. 1.3).

1.3 Color Models

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.

RGB Color Model


In the RGB system each color is represented by its primary components relative to
Red, Green, and Blue. The model is based on a Cartesian coordinate system. The
RGB space is represented by a cube (see Fig. 1.4), in which the primary colors are at
three corners; cyan, magenta, and yellow are at the three opposite corners. Black is at
the origin and white is at the corner farthest from the origin. The gray scale—points
of equal RGB values—extends from the black point to white point along the line
joining these two points. The different colors in this model are points on or inside the
cube. They are defined by vectors extending from the origin of the Cartesian system.

HSV Color Model


The HSV color system, also called HSB (B for Brightness) is closer than RGB
system to the way human describe color sensations. In artistic terminology hue,
1.3 Color Models 7

Fig. 1.4 RGB color model (taken from [3])

Fig. 1.5 HSV-HSB color


model

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)

Finally, by normalizing, we have


1
(H ∗ + 6) for H ∗ < 0
H= 6 (1.1)
H∗ otherwise

The S and V components are defined as follows:



max(R, G, B)/Δ if Δ > 0
S= (1.2)
0 otherwise

V = max(R, G, B)/Cmax (1.3)

where Cmax is the maximum value in the RGB scale (generally Cmax = 255).

HSI Color Model


The HSI color model is based on triangular and circular planes, as depicted in Fig. 1.6.
The triangles and circles are perpendicular to the vertical intensity axis. The Hue (H)
is measured by the angle around the vertical axis and has a range of values between
0◦ and 360◦ beginning with red at 0◦ . It gives a measure of the spectral composition
of a color. The saturation (S) is a ratio that ranges from 0 (i.e. on the I axis) extending
radially outwards to a maximum value of 1 on the surface of the cone. This component
refers to the proportion of pure light of the dominant wavelength and indicates how
far a color is from a gray of equal brightness. The intensity (I) also ranges between
0 and 1 and measures the relative brightness. At the top and bottom of the cone,
where I = 0 and I = 1, respectively, H and S are undefined and meaningless. At any
point along the I axis the saturation component is zero and the Hue is undefined.
This singularity occurs whenever R = G = B.
 
−1
1
(R − G) + (R − B)
H = cos  2
(1.4)
(R − G)2 + (R − B)(R − G)
3
S = 1− [min(R, G, B)] (1.5)
R+G+B
1
I = (R + G + B) (1.6)
3
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
1.3 Color Models 9

Fig. 1.6 HSI color model (taken from [3])

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.

1.4 Color Image Representation Using Java

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

I = 0.299R + 0.587G + 0.114B (1.8)

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

1. creation of a new image


2. conversion from RGB to HSB and vice versa
3. splitting or merging the color components
4. managing a stack of components or slides by adding a slice or deleting, merging
slides into an image.
The Listing 1.1 shows a Java plugin to convert a color image from RGB to a HSB
(HSV) stack using the Eqs. (1.1), (1.2) and (1.3).
Listing 1.1 A Java program to convert RGB to HSI.
i m p o r t ij .*;
i m p o r t ij . p l u g i n . f i l t e r . P l u g I n F i l t e r ;
i m p o r t ij . p r o c e s s .*;
i m p o r t ij . gui .*;
i m p o r t java . awt .*;
/* S p l i t s an RGB i m a g e into three 8 - bit g r a y s c a l e c o m p o n e n t s
( hue , s a t u r a t i o n and b r i g h t n e s s ) */
public class RGB_Splitter_into_HSI_components
implements PlugInFilter {
I m a g e P l u s imp ;
p u b l i c int s e t u p ( S t r i n g arg , I m a g e P l u s imp ) {
this . imp = imp ;
return DOES_RGB + NO_UNDO ;
}
p u b l i c v o i d run ( I m a g e P r o c e s s o r ip ) {
int w = imp . g e t W i d t h ();
int h = imp . g e t H e i g h t ();
I m a g e S t a c k h s b S t a c k = imp . g e t S t a c k ();
I m a g e S t a c k h u e S t a c k = new I m a g e S t a c k (w , h );
I m a g e S t a c k s a t S t a c k = new I m a g e S t a c k (w , h );
I m a g e S t a c k b r i g h t S t a c k = new I m a g e S t a c k (w , h );
byte [] hue ,s , b ;
C o l o r P r o c e s s o r cp ;
int n = h s b S t a c k . g e t S i z e ();
for ( int i =1; i <= n ; i ++) {
IJ . s h o w S t a t u s ( i + " / " + n );
hue = new byte [ w * h ];
s = new byte [ w * h ];
b = new byte [ w * h ];
cp = ( C o l o r P r o c e s s o r ) h s b S t a c k . g e t P r o c e s s o r (1);
cp . g e t H S B ( hue , s , b );
h s b S t a c k . d e l e t e S l i c e (1);
// S y s t e m . gc ();
h u e S t a c k . a d d S l i c e ( null , hue );
s a t S t a c k . a d d S l i c e ( null , s );
b r i g h t S t a c k . a d d S l i c e ( null , b );
IJ . s h o w P r o g r e s s (( d o u b l e ) i / n );
}
S t r i n g t i t l e = imp . g e t T i t l e ();
imp . hide ();
new I m a g e P l u s ( " ( hue ) " + title , h u e S t a c k ). show ();
new I m a g e P l u s ( " ( s a t u r a t i o n ) " + title , s a t S t a c k ). show ();
new I m a g e P l u s ( " ( b r i g h t n e s s ) " + title , b r i g h t S t a c k ). show ();
}
}
12 1 Image Representation Using Java

Listing 1.2 Color inverter Java plugin.


i m p o r t ij .*;
i m p o r t ij . gui .*;
i m p o r t java . awt .*;
i m p o r t ij . p l u g i n . f i l t e r . P l u g I n F i l t e r ;
i m p o r t ij . p r o c e s s .*;
/* C o l o r I n v e r t e r
* I n v e r t s the p i x e l s in the ROI of a RGB i m a g e .
* T h i s is an e x a m p l e f r o m the I m a g e J p l u g i n w r i t i n g t u t o r i a l :
* http :// www . fh - h a g e n b e r g . at / mtd / d e p o t / i m a g i n g / i m a g e j
*/
public class ColorInverter_ implements PlugInFilter {
p u b l i c int s e t u p ( S t r i n g arg , I m a g e P l u s imp ) {
if ( arg . e q u a l s ( " a b o u t " ))
{ s h o w A b o u t (); r e t u r n DONE ;}
return DOES_RGB + NO_CHANGES ;
}
//
p u b l i c v o i d run ( I m a g e P r o c e s s o r ip ) {
// get width , h e i g h t and the r e g i o n of i n t e r e s t
int w = ip . g e t W i d t h ();
int h = ip . g e t H e i g h t ();
R e c t a n g l e roi = ip . g e t R o i ();
// c r e a t e a new i m a g e with the same size
// and c o p y the p i x e l s of the o r i g i n a l image
ImagePlus inverted = NewImage . createRGBImage (
" I n v e r t e d image " , w , h , 1 , N e w I m a g e . F I L L _ B L A C K );
I m a g e P r o c e s s o r i n v _ i p = i n v e r t e d . g e t P r o c e s s o r ();
i n v _ i p . c o p y B i t s ( ip ,0 ,0 , B l i t t e r . COPY );
int [] p i x e l s = ( int []) i n v _ i p . g e t P i x e l s ();
// i n v e r t the p i x e l s in the ROI
for ( int i = roi . y ; i < roi . y + roi . h e i g h t ; i ++) {
int o f f s e t = i * w ;
for ( int j = roi . x ; j < roi . x + roi . width ; j ++) {
int pos = o f f s e t + j ;
int c = p i x e l s [ pos ];
int r = ( c &0 x f f 0 0 0 0 ) > >16; // e x t r a c t red c o m p o n e n t
int g = ( c &0 x 0 0 f f 0 0 ) > >8; // e x t r a c t g r e e n c o m p o n e n t
int b = ( c &0 x 0 0 0 0 f f ); // e x t r a c t blue c o m p o n e n t
r =255 - r ;
g =255 - g ;
b =255 - b ;
p i x e l s [ pos ] = ( ( r & 0 xff ) < <16)+(( g & 0 xff ) < < 8)+( b & 0 xff );
}
}
i n v e r t e d . show ();
i n v e r t e d . u p d a t e A n d D r a w ();
}
void s h o w A b o u t () {
IJ . s h o w M e s s a g e ( " C o l o r I n v e r t e r " ," i n v e r t s ROI of a RGB image " );
}
}

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.

You heard that song of the Jubilee!


Ten thousand cannon took up the song,
Ten million people came out to see,
A surging, eager and anxious throng.
And the great were glad as glad could be;
Glad at Windsor, glad at Saint James,
Glad of glory and of storied names,
Generals, lords and gentlemen,
Such as we never may see again,
And ten thousand banners aflying!
But up the Thames and down the Thames
Bare, hungered babes lay crying,
Poor, homeless men sat sighing;
And far away, in fair Cathay,
An Eden land but yesterday,
Lay millions, starving, dying.

Prone India! All her storied gems—


Those stolen gems that decked the Crown
And glittered in those garment-hems,
That Jubilee in London town—
Were not, and all her walls were down,
Her plowshare eaten up with rust,
Her peaceful people prone in dust,
Her wells gone dry and drying.
You ask how came these things to be?
I turn you straight to historie;
To generals, lords and gentlemen
Who cut the dykes, blew down the walls
And plowed the land with cannon-balls,
Then sacked the ruined land and then—
Great London and the Jubilee,
With lying banners aflying.

Eight millions starved to death! You hear?[B]


You heard the song of that Jubilee,
And you might have heard, had you given ear,
My generals, lords and gentlemen,
From where the Ganges seeks the sea,
Such wails between the notes, I fear,
As you never had cared to hear again.
The dead heaped down in the dried-up wells,
The dead, like corn, in the fertile fields
You had plowed and crossed with your cannon wheels,
The dead in towns that were burning hells
Because the water was under your heels!
They thirsted! You drank at the Jubilee,
My generals, lords and gentlemen,
Drank as you hardly may come to when
The final account of your deeds may be.

Eight millions starved! Yet the Jubilee—


Why, never such glory since Solomon’s throne.
The world was glad that it came to see,
And the Saxon said, “Lo, the world is mine own!”
But mark you! That glittering great Crown stone,
And the thousand stars that dimmed in this sun,
Were stolen, were stolen every one,
Were stolen from those who starved and died!

Brave Boers, grim Boers, look to your guns!


They want your diamonds, these younger ones—
Young generals, lords and gentlemen—
Robbers to-day as they were robbers then.
Look to your guns! for a child can see
(Can your children see now for crying?)
That they want your gems! Ah, that Jubilee,
With those lying banners aflying!

[B] See report of Julian Hawthorne, sent by a


New York magazine to photograph and give
details of the starving in India, about the time of
the Jubilee. He does not give these figures, but
his facts and photographs warrant a fearful
estimate. As for the subjugation of India and the
wanton destruction, not only of life, but the very
means of life, this is history. And now, again, is
despoiled India starving,—starving, dying of
hunger as before; even more fearfully, even while
England is trying to despoil the Boers. And when
her speculators and politicians have beaten them
and despoiled them of their gold and diamonds
and herds, what then? Why, leave them to starve
as in India, or struggle on in the wilderness as
best they can.
AT THE CALEND’S CLOSE.
“For faith hath still an Olivet
And Love a Galilee.”

Two things: the triple great North Star,


To poise and keep His spheres in place,
And Zeus for peace: for peace the Tzar.
Or Science, Progress, Good or Grace,
These two the centum’s fruitage are;
And of the two this olive tree
Stands first, aye, first since Galilee.

Christ’s centum bends his frosted head;


Christ’s calend calls a solemn roll.
What shall be writ, what shall be said
Of Saxon when this blood-writ scroll
By God’s white light at last is read?
What of ye Saxon nations, ye
Who prate the Christ most noisily?

The eagle’s bent beak at the throat


Of Peace where far, fair islands lie:
The greedy lion sees a mote
In his brave, weaker brother’s eye
And crouches low, to gorge and gloat.
The Prince of Peace? Ye write his name
In blood, then dare to pray! For shame!

These Saxon lies on top of lies,


Ten millstones to the neck of us,
Forbid that we should lift our eyes
Till we dare meet that manlier Russ;
In peons for peace of paradise:
Forbid that we, until the day
We wash our hands, should dare to pray.
AS IT IS WRITTEN.
The she wolf’s ruthless whelp that tare
Old Africa is dead and all
Despised; but Egypt still is fair,
Jugartha brave; and Hannibal
Still hero of the Alps and more
To-day than all red men of Rome.
Archimedes still holds his measured home;
Grim Marius his ruins as of yore,
And heart still turns to heart, as then.
Live by the sword and by the sword
Ye surely die: thus saith the Lord—
And die despised of men.
TO OOM PAUL KRUGER.
ON HIS SEVENTY-FIFTH BIRTHDAY.

His shield a skin, his sword a prayer:


Seventy-five years old to-day!
Yet mailed young hosts are marshaling there
To hound down in his native lair—
Oom Paul Kruger, South Africa.

Mars! Ever was such shameless shame?


Christ’s calend calls the roll to-day,
Yet Christians write the sweet Christ’s name
In blood, and seek, with sword and flame—
Oom Paul Kruger, South Africa.

Stand firm, grim shepherd-hero, stand!


The world’s watchtowers teem to-day
With men who pray with lifted hand
For you and yours, old, simple, grand—
Oom Paul Kruger, South Africa.

God’s pity for the foolish few


Who guide great England’s hosts to-day!
They cannot make the false the true;
They can but turn true hearts to you—
Oom Paul Kruger, South Africa.

Or king or cowboy, steep or plain,


Or palace hall, where, what—to-day,
All, all, despite of place or gain,
Are with you, with you heart and brain—
Oom Paul Kruger, South Africa.
Brave England’s bravest, best, her Fair,
Who love fair play, are yours to-day.
And oh, the heart, the hope, the prayer—
The world is with you over there—
Oom Paul Kruger, South Africa.
USLAND[C] TO THE BOERS.

And where lies Usland, Land of Us?


Where Freedom lives, there Usland lies!
Fling down that map and measure thus
Or argent seas or sapphire skies:
To north the North Pole, south as far
As ever eagle cleaved his way;
To east the blazing morning star,
And west? West to the Judgment Day!

No borrowed lion, rampt in gold;


No bleeding Erin, plaintive strains;
No starving millions, mute and cold;
No plundered India, prone in chains;
No peaceful farmer, forced to fly
Or draw his plowshare from the sod,
And, fighting, one to fifty, die
For freedom, fireside and God.

Fear not, brave, freeborn, voiceless Boers.


Great Usland’s heart is yours to-day.
Aye, England’s heart of hearts is yours,
Whatever scheming men may say.
Her scheming men have mines to sell,
And we? Why, meat and corn and wheat.
But, Boers, all brave hearts wish you well;
For England’s triumph means defeat.

[C] It is a waste of ink and energy to write “United


States of America” always. All our property is
marked Us. Then why not Usland? And why
should we always say American? The Canadian,
the Mexican, the Brazilian and so on are as
entirely entitled to the name American as we.
Why not say Usman, as Frenchman, German,
and so on?
THAT USSIAN OF USLAND.
Anent the boundary line—“Lest we forget, lest we forget.”

“I am an Ussian true,” he said;


“Keep off the grass there, Mister Bull!
For if you don’t I’ll bang your head
And bang your belly-full.

“Now mark, my burly jingo-man,


So prone to muss and fuss and cuss,
I am an Ussian, spick and span,
From out the land of Us!”

The stout man smole a frosty smile—


“An Ussian! Russian, Rusk, or Russ?”
“No, no! an Ussian, every while;
My land the land of Us.”

“Aw! Usland, Uitland? or, maybe,


Some Venezuela I’d forgot.
Hand out your map and let me see
Where Usland is and what.”

The lank man leaned and spread his map


And shewed the land and shewed,
Then eyed and eyed that paunchy chap,
And pulled his chin and chewed.

“What do you want?” A face grew red,


And red chop whiskers redder grew.
“I want the earth,” the Ussian said,
“And all Alaska, too.
“My stars swim up yon seas of blue;
No Shind am I, Boer, Turk or Russ.
I am an Ussian—Ussian true;
My land the land of Us.

“My triple North Star lights me on,


My Southern Cross leads ever thus;
My sun scarce sets till burst of dawn.
Hands off the Land of Us!”
FIGHT A BOY OF YOUR SIZE.

Back, far back in that backwood’s school


Of Lincoln, Grant and the great we prize
We boys would fight, but we had one rule—
You must fight a boy of your size.

Or white boy or brown, aye, Boer no doubt,


Whatever the quarrel, whatever the prize
You must stand up fair and so fight it out
With a boy somewhat your size.

But a big boy spoiled so for fights, he did,


He lied most diplomatic-like-lies
And he fought such fights—ye gods forbid—
But never a boy of his size.

He skinned and he tanned, kept hide, kept hair,


Now I am speaking figure-wise—
But he didn’t care who and he didn’t care where
Just so he was under size.

Then the big boy cried, “A big chief am I,


I was born to bang and to civilize,
And yet sometimes I, in my pride I sigh
For something about my size.”

Then the good Schoolmaster he reached a hand


And across his knee he did flop crosswise
That bully, and raise in his good right hand
A board of considerable size.

And the good Schoolmaster he smote that chief,


He smote both hips and he smote both thighs;
And he said as he smote, “It is my belief
This board is about your size.”

Beware the bully, of his words beware,


His triangular lips are a nest of lies,
For he never did dare and he never will dare,
To bang a boy of his size.
MILLER, C. H. (Joaquin)
(The Poet of the Sierras)
Complete Poetical Works
In One Volume
This volume completes the life work of this “Sweet Singer by
the Sunset Sea.” In it are included all the best poems
formerly published under the following titles: “Songs of the
Sierras”—“Songs of Sunland”—“Songs of
Summerlands”—“Songs of Italy”—“Songs of the Mexican
Seas”—“Classic Shades”—“Songs of the Soul”—“Olive
Leaves”—“Joaquin,” and others. The book contains 330
pages of double column matter, printed from new type on
laid paper. Each of the longer poems is followed by
extensive foot notes written by the poet himself, also a
most interesting, reminiscent preface and appendix
narrating incidents and scenes in his eventful life, never
published before. It has several illustrations showing the
poet at different ages, also a beautiful scene from his
present home on “The Hights.”

PRICE.

Beautifully Bound in Silk Cloth, side and back stamp $2


in gilt, gilt top 50
Gift Edition, bound in three-quarter Levant 4 50
Limited Autograph Edition, bound in full Morocco 7 50
WHAT TWO GREAT POPULAR POETS SAY:
Edwin Arnold recently said: “Joaquin Miller is one of the
two greatest American poets.”
James Whitcomb Riley said of Joaquin Miller’s singing: “It
is the truest American voice that has yet thrilled the
echoes of our wild, free land, and awakened the
admiration and acclaim of the Old World. No marvel that
our Country is proud of this proud child of hers, who in all
lands has sung her dawning glory and his own changeless
loyalty to her.”

Songs of the Soul


This volume contains this well known poet’s latest, and as
pronounced by all critics, best poetic productions. The
longest poem, entitled “Sappho and Phaon,” occupies
seventy-three pages of the book, and is destined to
become a classic. Besides this there are several of his
older and most popular poems, such as “Columbus,”
“Passing of Tennyson,” “Sunset and Dawn at San Diego,”
etc., making a 12 mo. volume of 163 pages, with author’s
latest portrait.

PRICE.

Bound in Fine Silk Cloth, design on cover, Library $1


Edition 00
Author’s Autograph Gift Edition, bound in full
3 50
padded Leather
Paper Edition, printed in Gilt 25
“If Joaquin Miller had written nothing else, this one poem
(Sappho and Phaon) would make a place for him among
immortals.”—The Wave.
The Critic, in a recent article, places him among the
world’s greatest poets.
The London Athenæum gives “Columbus” first place
among all the poems written by Americans as to power,
workmanship and feeling.
TRANSCRIBER’S NOTES:
Inconsistencies in hyphenation have been
standardized.
Archaic or variant spelling has been retained.
The Table of Contents was created by the transcriber
for the convenience of the reader and is granted to the
public domain.
*** END OF THE PROJECT GUTENBERG EBOOK CHANTS FOR
THE BOER ***

Updated editions will replace the previous one—the old editions


will be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright
in these works, so the Foundation (and you!) can copy and
distribute it in the United States without permission and without
paying copyright royalties. Special rules, set forth in the General
Terms of Use part of this license, apply to copying and
distributing Project Gutenberg™ electronic works to protect the
PROJECT GUTENBERG™ concept and trademark. Project
Gutenberg is a registered trademark, and may not be used if
you charge for an eBook, except by following the terms of the
trademark license, including paying royalties for use of the
Project Gutenberg trademark. If you do not charge anything for
copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such
as creation of derivative works, reports, performances and
research. Project Gutenberg eBooks may be modified and
printed and given away—you may do practically ANYTHING in
the United States with eBooks not protected by U.S. copyright
law. Redistribution is subject to the trademark license, especially
commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE

You might also like