Computer imaging is a rapidly expanding field, with applications in areas such as medicine, space exploration and the entertainment industry. The diversity of applications is one of the driving forces that make it such an exciting topic to be involved in for the 21st century. Computer imaging can be defined as the acquisition and processing of visual information by computer. This book presents a unique approach to the practice of computer imaging, and will be of interest to those who want to learn about and use computer imaging techniques.

Computer imaging can be divided into two primary areas, computer vision and image processing, with image analysis tying these two together. Although the book focuses on image analysis and processing, the image analysis part provides the reader with the tools necessary for developing computer vision applications. The automatic classification of abnormalities in medical images and the robotic control of a mars rover are examples of computer vision applications. Image processing applications involve manipulation of image data for viewing by people. Examples include special effects imaging for motion pictures, and the restoration of satellite images distorted by atmospheric disturbance.

Why write this book?

This book takes an engineering approach to computer imaging and brings together image analysis and image processing into a unified framework that provides a useful paradigm for both computer vision and image processing applications. Additionally, the theoretical foundation is presented as needed in order to fully understand the material. Although theoretical-based textbooks are available, they do not really take what I consider an engineering approach. I felt that there was a need for an application-oriented book that would bring image analysis and processing together in a unified framework, and this book fills that gap.

The book's development was initiated by my experience using my first book in my imaging courses. The first book was also written to take an engineering approach, but was targeted more at working professionals. For the new book I wanted to reorganize, update, expand and add more materials that make it more useful as a textbook. To meet those requirements I have reorganized the topics and added key aspect summaries and exercises. Additionally, the original CVIPtools software was UNIX-based and it reached the point where almost 95% of the users are using the Windows operating system. So the creation of a real Windows version of CVIPtools has been integrated throughout the book which creates a valuable environment for learning about computer imaging as well as providing a set of reusable tools for applications development.

Who will use this book?

Computer Imaging: Digital Image Analysis and Processing is intended for use by the academic community in teaching and research, as well as working professionals doing research and development in the commercial sectors. This includes image analysis, computer vision and image processing academics and practicing engineers, consultants, and programmers, as well as those in the graphics fields, medical imaging professionals, multimedia specialists, and others. The book can be used for self study and is of interest to anyone involved with developing computer imaging applications, whether they are engineers, geographers, biologists, oceanographers, or astronomers. At the university it can be used as a text in standard computer vision and/or image processing senior-level or graduate courses, or may be used at any level in an applications-oriented course. One essential component that is missing from standard theoretical textbooks is a conceptual presentation of the material, which is fundamental to gaining a solid understanding of these complex topics. Additionally, this book provides the theory necessary to understand the foundations of computer imaging, as well as that which is needed for new algorithm development.

The prerequisites for the book are an interest in the field, a basic background in computers, and a basic math background provided in an undergraduate science or engineering program. Knowledge of the C or C++ programming language will be necessary for those intending to develop algorithms at the programming level. Some background in signal and system theory is required for those intending to gain a deep understanding of the sections on transforms and compression. However, the book is written so that those without this background can learn to use the tools and achieve a conceptual understanding of the material.


To help motivate the reader I have taken an approach to learning that presents topics as needed. This approach starts by presenting a global model to help gain an understanding of the overall process, followed by a breakdown and explanation of each individual topic. Instead of presenting techniques or mathematical tools when they fit into a nice, neat theoretical framework, topics are presented as they become necessary for understanding the practical imaging model under study. This approach provides the reader with the motivation to learn about and use the tools and topics, because they see an immediate need for them. For example, the mathematical process of convolution is introduced when it is needed for an image zoom algorithm, and morphological operations are introduced when morphological filtering operations are needed after image segmentation. This approach also makes the book more useful as a reference, or for those who may not work through the book sequentially, but will reference a specific section as the need arises.

Organization of the Book

The book is divided into five major parts: I. Introduction to Computer Imaging, II. Digital Image Analysis, III. Digital Image Processing, IV. Programming with CVIPtools, and V. Appendices. The first part of the book contains all of the basic concepts and definitions necessary to understand computer imaging. The second part describes image analysis and provides the tools, concepts and models required to analyze digital images and develop computer vision applications. Part III discusses topics and application areas for the processing of images for human consumption, so it starts with a chapter on visual perception. Each chapter includes numerous references and examples for the material presented. The material is presented in a conceptual and application-oriented manner, so that the reader will immediately understand how each topic fits into the overall framework of computer imaging applications development.

The programming part of the book, Part IV, provides all the necessary information required to use the CVIPtools environment for algorithm development. This section also includes information to assist with the implementation of the programming exercises included with each chapter. The appendices also contain reference material for use with CVIPtools, as well as other useful computer imaging related information.

Using the Book in Your Courses

            The book is intended for use in both image processing and computer vision courses. Both types of courses will use the introductory chapters in Part I. After the introduction, computer vision courses will concentrate on Part II, Digital Image Analysis, where the introductory chapter presents a model of image analysis and concludes with the development of a pattern classification algorithm for geometric objects in images. This model provides a foundation for all the tools that are developed and discussed throughout Part II. Digital image processing courses will focus on Part II, Digital Image Processing, which contains an introductory chapter on human visual perception, followed by chapters on image enhancement, image restoration and image compression. Most image processing courses will also want to cover chapter 5 on image transforms. Both computer vision and image processing courses can use the programming parts of the book, depending on the desire of the instructor. I encourage all who use the book to explore the programming exercises because they provide a valuable tool to learn about computer imaging. There are also many tutorial exercises using CVIPtools included with each chapter, which provide hands-on experience and allow the user to gain insight into the various algorithms and parameters. Additionally, the CD contains many of the images used in the figures, as well as the original Word documents for all the figures and linked html pages for the Word figures. These html pages can be readily used by the instructor during lectures with a web browser and a projector.

The following table outlines using the book in your course.





Image Analysis

Computer Vision

Machine Vision

1, 2, 3, 4, 5.1, 5.2, 5.7, 6, 11


5.3, 5.4, 5.5, 5.6, 5.8

12, Appendices

Digital Image Processing

1, 2, 3.1, 3.2, 5.1, 5.2, 5.7, 5.8, 7, 8, 9, 10

5.3, 5.4, 5.5, 5.6, 11

12, Appendices


The CVIPtools Software Development Environment

The software development environment includes an extensive set of standard C libraries, a skeleton program for using the C libraries called CVIPlab, a dynamically linked library (cviptools.dll) based the common object module (COM) interface, and a GUI-based program for the exploration of computer imaging called CVIPtools. The CVIPlab program and all the standard libraries are all ANSI-C compatible. The new version of CVIPtools has been developed exclusively for the Windows operating system, but various UNIX versions are available at the web site ( The CVIPtools software, the libraries, the CVIPlab program, images used in the textbook, and associated documentation are included on the CD-ROM.

The CVIPtools software has been used in projects funded by the National Institutes of Health, the United States Department of Defense, and numerous corporations in the commercial sector. CVIPtools has been used for applications in the medical, aerospace, printing and manufacturing fields in applications such as the development of a helicopter simulation, automated classification of lumber, skin tumor evaluation and analysis, embedded image processing for print technology, and the automatic classification of defects in microdisplay chips. Since it is a university-sponsored project, it is continually being upgraded and expanded, and updates are available via the Internet (see appendix B). This software allows the reader to learn about imaging topics in an interactive and exploratory manner, and to develop their own programming expertise with the CVIPlab program and the associated laboratory exercises. With the CVIPlab program they can link any of the already defined CVIPtools functions, ranging from general purpose input/output and matrix functions to more advanced transform functions and complex imaging algorithms; some of these functions are state-of-the-art algorithms since CVIPtools is continually being improved at the Computer Vision and Image Processing Laboratory at Southern Illinois University Edwardsville (SIUE).