Computational Colour Science Using MATLAB
eBook - ePub

Computational Colour Science Using MATLAB

  1. English
  2. ePUB (mobile friendly)
  3. Available on iOS & Android
eBook - ePub

Computational Colour Science Using MATLAB

About this book

Computational Colour Science Using MATLAB 2nd Edition offers a practical, problem-based approach to colour physics. The book focuses on the key issues encountered in modern colour engineering, including efficient representation of colour information, Fourier analysis of reflectance spectra and advanced colorimetric computation. Emphasis is placed on the practical applications rather than the techniques themselves, with material structured around key topics. These topics include colour calibration of visual displays, computer recipe prediction and models for colour-appearance prediction.

Each topic is carefully introduced at three levels to aid student understanding. First, theoretical ideas and background information are discussed, then explanations of mathematical solutions follow and finally practical solutions are presented using MATLAB. The content includes:

  • A compendium of equations and numerical data required by the modern colour and imaging scientist.
  • Numerous examples of solutions and algorithms for a wide-range of computational problems in colour science.
  • Example scripts using the MATLAB programming language.

This 2nd edition contains substantial new and revised material, including three innovative chapters on colour imaging, psychophysical methods, and physiological colour spaces; the MATLAB toolbox has been extended with a professional, optimized, toolbox to go alongside the current teaching toolbox; and a java toolbox has been added which will interest users who are writing web applications and/or applets or mobile phone applications.

Computational Colour Science Using MATLAB 2nd Edition is an invaluable resource for students taking courses in colour science, colour chemistry and colour physics as well as technicians and researchers working in the area. In addition, it acts a useful reference for professionals and researchers working in colour dependent industries such as textiles, paints, print & electronic imaging.

Review from First Edition:
"…highly recommended as a concise introduction to the practicalities of colour science…" (Color Technology, 2004)

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Computational Colour Science Using MATLAB by Stephen Westland,Caterina Ripamonti,Vien Cheung in PDF and/or ePUB format, as well as other popular books in Physical Sciences & Optics & Light. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Wiley
Year
2012
Print ISBN
9780470665695
eBook ISBN
9781118337042
Chapter 1
Introduction

1.1 Preface

The growing importance of colour science in the manufacturing industry has resulted in the availability of many excellent text books: existing texts describe the history and development of the CIE system (Wyszecki and Stiles, 1982; Hunt, 1998; Ohta and Robertson, 2005; Schanda, 2007; Hunt and Pointer, 2011), the prediction of colour difference (McDonald, 1997a; Berns, 2000; Luo, 2002a) and colour appearance (Fairchild, 2005), the relationship of the CIE system to the human visual system (Wandell, 1995; Kaiser and Boynton, 1996), and applications of colour science in technology (Green and MacDonald, 2002; Green, 2010). However, the field of colour science is becoming ever more technical and although practitioners need to understand the theory and practice of colour science they also need guidance on how to actually compute the various metrics, indices and coordinates that are useful to the practicing colour scientist. Computational Colour Science Using MATLABĀ® was published to address this specific need (Westland and Ripamonti, 2004). It described methods and algorithms for actually computing colorimetric parameters and for carrying out applications such as device characterisation, transformations between colour spaces and computation of various indices such as colour differences. There are a number of reasons why a second edition has now been published. Firstly, the last decade has seen a number of developments that are important but which were not included in the first edition; secondly, some notable topics were omitted from the first edition and are now included as additional chapters in this edition; thirdly the toolbox was originally written to emphasise clarity (for teaching purposes) but somewhat at the expense of performance (the authors now feel that a better balance between clarity and performance can be achieved and therefore all of the MATLABĀ® code has been rewritten); fourthly, the presentation of the text has been rewritten to provide a more logical and consistent presentation; fifthly, the comprehensive use of colour throughout the second edition provides opportunities to include topics that were more difficult to include in the first edition.
In preparing this edition, and the previous edition, a difficult decision was required on what level of existing knowledge we assume the reader has. However, this book is not intended as a primer for colorimetry and the CIE system. It is clear that a number of excellent texts that address this purpose already exist. Therefore, we assume a reasonable understanding of the main principles of the CIE system of colorimetry although a brief revision aid is provided for those readers who may find this useful. Readers who wish to explore the theoretical and historical backgrounds of the topics covered by this book are encouraged to review the alternative texts mentioned above and referred to within this text. We have written this book primarily for master's and doctoral students undertaking research in colour science since this is the book that we would have liked to have had access to when we undertook our own doctoral research. However, we are confident that computer programmers, colour-image engineers and academics will find this book and the associated MATLABĀ® code useful.
Finally, we note that the term colour science could be defined quite broadly to include topics such as colour chemistry, materials science, imaging science and a myriad of industrial applications that involve colour. Our definition of colour science is the perception, measurement and communication of colour.

1.2 Why Base this Book on MATLABĀ®?

This book describes algorithms and mathematical procedures in colour science and illustrates these procedures using the numerical software tool called MATLABĀ®. MATLABĀ® provides several features that make it suitable for the implementation of algorithms in general and colour-science algorithms in particular, and results in code that is easily understandable by readers even if they have relatively little experience of writing software. These features include the use of operations upon vectors and matrices to enable compact code that avoids the excessive use of looping procedures, the provision of a massive library of functions that the MATLABĀ® programmer can call upon, and the ease of use of graphics functions to enable the user to easily and effectively visualise complex data structures.
Most computer languages are very dependent upon a variety of ā€˜looping’ procedures to execute summations or to implement iterative techniques whereas MATLABĀ® enables these types of operations to be performed with a fraction of the code that would otherwise be required. For example, if we have two variables x and y that each consist of five entries and we wish to compute the product of the corresponding entries and then sum the results to yield a single number, we might write code that in BASIC looks like the following:
sum = 0 FOR i = 1 TO 5 sum = sum + x(i)*y(i) NEXT i 
In MATLABĀ® these four lines of BASIC code shown could be written as:
sum = 0 for i = 1:5 sum = sum + x(i)*y(i) end 
Note the small differences in syntax between the two languages. However, in MATLABĀ® we can also use the elegant equivalent code thus:
sum = x*y; 
Expressed in terms of linear algebra MATLABĀ® will perform the inner product of the 1 Ɨ 5 row vector x and the 5 Ɨ 1 column vector y. In the MATLABĀ® environment it is not necessary to specify how many entries the variables contain, as long as the dimensions of these variables define a valid matrix operation (in this case the row vector needs as many entries as the column vector). A variable in MATLABĀ® can represent a single number, a row or column vector, or a matrix (or array, as matrices are sometimes called). The operation given, for example, by:
y = 2*x; 
will assign to y twice the value of x if x defines a single number, but twice the value of every element in x if x is a vector or a matrix. The compact nature of MATLABĀ® code allows complex and sophisticated algorithms to be explained and demonstrated with clarity and accuracy. Moreover, the computation of many colorimetric terms is ideally suited to a language that expresses variables in terms of matrices and vectors. For example, the calculation of CIE tristimulus values is essentially the inner product of certain matrices (typically the inner product of a 1 Ɨ 31 row vector with a 31 Ɨ 3 matrix when the calculations are being carried out at 31 wavelength intervals, as is common). Some procedures are best explained or implemented using loops, however, and for these situations MATLABĀ® does provide for and while looping structures which work broadly in a way that will be familiar to programmers who are used to languages such as C or BASIC.
The second strength of MATLABĀ® is that it includes an encyclopaedic collection of subprograms, called M-files, for the solution of nearly any numerical problem. Although this book is not principally concerned with generic numerical analysis, but rather with particular colorimetric algorithms, the M-files that are available with MATLABĀ® are useful for many computations in colour science. MATLABĀ® provides many functions (such as those with the ability to solve systems of simultaneous linear equations) and if it was necessary to spend time explaining these in detail or writing code to implement them it would detract from the main focus of this book which is colour science. Readers may wish to refer to other text books (e.g. Press et al., 1993) that address implementations of numerical analysis in programming languages such as C if they wish to convert the code in this book into other programming languages.
Perhaps MATLAB'sĀ® most spectacular feature is its capability to display graphics. Two- or three-dimensional graphs are easily constructed by even a novice MATLABĀ® user. Thus:
x = [1 2 3 4 5]; y = [3 5 7 9 11]; plot(x,y) 
is sufficient code to plot a graph of the five values in the vector y against those in the vector x. Experienced programmers will find it trivial to construct sophisticated and informative graphs and the ability to almost effortlessly visualise data is one of the main advantages of using MATLABĀ® in a research environment. MATLABĀ® allows the user to answer complex ā€˜what if?’ questions with just a handful of code lines. MATLABĀ® is therefore an ideal experimental or prototyping language even if it lacks the run-time speed of some other languages such as C.
MATLABĀ® can be confusing, however, for users new to programming or who do not have a reasonable understanding of linear algebra. For this reason, Chapter 3 provides a gentle introduction to MATLABĀ® and Chapter 2 provides a basic introduction to linear algebra and the notation that is used throughout this book. Where possible, the code that is presented has been written for clarity rather than for efficiency or speed of computation to allow readers to understand the computational principles involved and to be able to implement them in a wide variety of programming languages. In general, special MATLABĀ® commands have been avoided, even though their use may have made the code more efficient, to reduce the effort that would be required to translate the code into a language such as C or C++. One exception, however, is the backslash operator, which is described in Chapter 3. Programmers who wish to use languages other than MATLABĀ® may wish to create their own version of the backslash operator in order to easily translate the code within this book. All of the MATLABĀ® code contained within this book can be downloaded from the MATLABĀ® website: www.mathworks.com/matlabcentral/.

1.3 A Brief Review of the CIE System of Colorimetry

Light is a term that we use to describe electromagnetic radiation, in the approximate wavelength range 360–780 nm, to which the human visual system is sensitive. When we observe the light reflected from surfaces in a scene, or when we look directly at the light emitted by light sources, we experience the sensation of colour. Colour is just one attribute of a complex and not fully understood set of properties that define the appearance of the world. Surfaces interact with light in a complex and varied way that includes processes of absorption, scattering, refraction and diffraction but it is the light that is reflected by the surfaces in a scene that we use to identify those surfaces by their colour. The reflectance properties of surfaces can be defined by spectral reflectance factors that are normally measured at regular intervals in the visible spectrum of radiation. The reflectance factor of an object at a certain wavelength (or wavelength interval) is the proportion of light at that wavelength that is reflected by the object and is never less than zero and only occasionally greater than unity. The term surface reflectance factor is used by some authors but this is somewhat confusing since it could imply that the light is reflected at the air/material surface of the object. Although a small amount of light (typically about 4% for inks and paints) is reflected at the surface, the majority of reflected light results from scattering processes that occur within the body of an object after the light has passed through the air/material surface. Commercially available reflectance spectrophotometers are able to measure reflectance factors (typically at intervals of 10 nm in the range 400–700 nm though some instruments extend their measurements to shorter or longer wavelengths). The quantity and quality of light that we see when we look at a point in a scene clearly depends upon the spectral power distribution of the illuminating source and the reflectance properties of the scene at that point. Our visual systems detect the reflected light using the light-sensitive sense organs or retinas that form the inner lining of the back of the eyeball. Light enters the eye through the pupil and is focused onto the retina by the lens. The retina consists of a mosaic of specialised cells called rods a...

Table of contents

  1. Cover
  2. Series Page
  3. Title Page
  4. Copyright
  5. Acknowledgements
  6. About the Authors
  7. Chapter 1: Introduction
  8. Chapter 2: Linear Algebra for Beginners
  9. Chapter 3: A Short Introduction to MATLABĀ®
  10. Chapter 4: Computing CIE Tristimulus Values
  11. Chapter 5: CIELAB and Colour Difference
  12. Chapter 6: Chromatic-Adaptation Transforms and Colour Appearance
  13. Chapter 7: Physiological Colour Spaces
  14. Chapter 8: Colour Management
  15. Chapter 9: Display Characterisation
  16. Chapter 10: Characterisation of Cameras
  17. Chapter 11: Characterisation of Printers
  18. Chapter 12: Multispectral Imaging
  19. Appendix A: Table of White Points of Illuminants used in r2xyz and Other Functions
  20. Appendix B: Colour Toolbox
  21. References
  22. Index