This site contains series of articles I've written on image processing for computer programmers. This site contains general techniques, including some rather high powered algorithms. Some articles contain computer code demonstrating how the techniques described are coded. Some do not, depending on the article. Either way, this site is intended for people who have a general knowledge of computer programming. It is not site on how to use various image processing packages.
To read this site, a programmer should have had at three semesters of instruction, including data structures. Some examples are object oriented, so an understanding of object orientation is helpful but not necessary. The site does not assume a knowledge of computer graphics, however if you have never done computer graphics programming read the first few articles carefully. Later articles do assume a basic knowledge of this field.
This is a work in process. As papers are written the general outline, as indicated by the index below, may change. Throughout the site there are markers that look like (XXXX add link). These are links to papers that have not been written yet. As papers are written the links will be updated.
Rather than including a coding style with each example, the style guide is given here.
Code appears in C++, Java or a psuedocode that is similar to these two languages. Certain older papers give examples in a more Pascal like psuedocode. The difference between C++ and the psuedocode is simply that no attempt has been made to compile the psuedocode and it probably will not compile.
Each data element begins with a scope specifier, and underscore then a type specifier. The scope specifiers are:
g - global m - member p - parameter l - local
Type specifiers are the first letter of a basic type or the first few letters of a class, enough to identify the class type. Pointers use the letter p. Thus a parameter which is a pointer to a surface, given that the surface class is defined as class cSurface, would look like
cSurface *p_pSurface
Programmer defined classes begin with a lower case c.
class cMyClass
Code is rarely tested, and will usually require modifications before use. Make sure you understand the code and test it thoroughly before using.

This page was last updated on 02/18/02
Send your comments and suggestions to
j_alan@prodigy.net