We are particularly interested in this course in images and image processing from a utilitarian perspective. From this perspective, imaging is a part of an application that has a useful purpose.
It is useful to make a discinction between natural and artificial images. I would classify as natural those images that appear in our mind as we view the world with our eyes. Artificial images are captured by artificial sensors and represented in forms that permit processing by computational algorithms. We will deal exclusively with artificial images in this course. The impression made by images when they are presented to a person is an important consideration in many image applications, but the images that are presented are still artificial in the sense given above.
Let us think about images for a moment. It is useful to be clear about what we mean when we use the word, for there are many different uses and meanings. The word image is a label for a category of objects that have the property that they represent spatial information. One may say that a particular function f(x,y) is an image because it will describe the variation in a quantity, represented by f, with the spatial coordinates, represented by x and y. The definition of image says nothing about how it is to be displayed, and nothing about how it will appear. This is certainly different from what you will find in a dictionary. However, it is very useful to separate the representation of spatial information from its display. There are many ways to display the same thing. We are most interested in the spatial information and ways in which we can extract useful information.
We are particularly interested in computer representations of images. Some kind of computer representation is a necessity if we are to use computer processing. We will find that there are many possible computer representations. Knowing their properties is an important part of our ability to build useful algorithms. Computer representations have the common property that they are based on discrete elements. Digital image processing is done by digital computers, and digital computers must use discrete data elements.
A digital representation of an image must always be some finite collection of numbers. One of the most natural representations is an array of values. Suppose that one has an array F of integers with N columns and M rows. The number F[i,j] can represent the brightness of a scene at position (i dx, j dy) relative to some reference origin. The dimensions (dx,dy) represent the pixel size. By making these dimensions sufficiently small one can approximate a spatial continuum.
We will find that there are many possible representations of images. It is possible to find a computer-compatible representation for the spatial information in any application. The special needs seen in the enormous variety of applications lead to many representations. We seek to become proficient in the principles that underly the representations and the related processes and to become familiar with some selected subset. But it is useful to remember that we use digital representation because we want to use computer processing and digital communication. Digital representation is driven by those requirements.
Digital image processing is a computer-based activity that has several potential products:
These categories are listed for our convenience in thinking about image processing algorithms. It should be clear that the algorithms will be quite different. Each is an area of specialization in its own right. We will focus on the first two categories. These have the common property that images are an essential part (but not necessarily all) of the input data.
A digital image process is always based on a computer program. The instructions in the program tell the computer how to process the data. A computer program therefore must have a representation such that can be directly understood by a computer. But this representation may not be the one that is most easily understood by people. We need to first represent the process in a form that we can understand and then convert it into a program.
The term algorithm will be used for a general representation of a computational process. An algorithm can have many descriptions, some that can be understood by people but not computers and some that can be understood by computers and only with great difficulty by people. A computer program in a programming language is a representation that can be understood by both. The compiled binary executable is not meant for human consumption.
An algorithm is a symbolic representation of a process. Our first requirement is that it must be clear and understandable to people. They must be able to evaluate it, discuss it, and pick it apart to see whether it will meet the requirements of the task. The goal of the image process designer is to construct an algorithm that meets the requirements of the application.
Digital image processing is then the study and practice of the construction of algorithms that can produce results such as those in the list above. Our focus will be on the manipulation of images to extract or expose spatial information. The extraction of spatial information means finding meaningful structures and spatial relationships in images. Exposing spatial information means changing the image in a manner that will make it easier for a user, usually a person, to see and identify objects and relationships.
What is the daily work of a digital image processing expert? Is it in the use of existing tools to process images on a computer? That may be a part of the job, but likely only a minor part. Routine processing of images is a job for a technical specialist such as an image analyst. The specialist uses tools that have been created by others. A more common role for the DIP expert is the design and construction of the tools.
The tools are usually complex devices, more like a machine with many parts, whose function is understood in terms of the task. To build good algorithms we will need to understand a variety of algorithm components and have the ability to combine them into a larger processing system. This must always be done with an understanding of the task that is to be accomplished. Many of the components are fairly general-purpose, but the processing system is usually very task specific.
Algorithms (and the larger processing systems) are created by design. There is much in common between a DIP expert designing an algorithm and an architect designing a building or an engineer designing a product. The DIP expert does engineering in the domain of image processing algorithms. The design is a description of the artifact and the procedure for building it. Creating a design for an artifact that can satisfy a need is the essence of engineering. Our goal will be to build our expertise in design in the domain of image processing algorithms.