The DipTools Library Specification Version 2.0


  1. The Header file -
    1. The API header files are given here. You are supposed to include this header file in your source and follow this API. Implement the API exactly as given. In case you feel there are inconsistencies in the API report the same immediately.
    2. If you have trouble figuring out the comments in the API, here is a doxygen generated documentation of the same.
    3. Put all your source in a file. If you do not want to put everything in one source file, use the given header file as a wrapper over your headers.
    4. Make sure that you conform to the most current version of this API. Last API Revision done on : 4 Sep, 2:25 pm
    5. This version of DipTools works using ImageMagick. ImageMagick is to be used only for reading, writing and displaying the images. Do NOT image transform functions from ImageMagick.
    6. ImageMagick is installed on all the intel cluster machines. The documentation for ImageMagick may be found in /usr/share/doc/ of your machines.
  2. The Library -
    1. Use ar to generate a libdiptools.a library. Here is one way to do it -
      ar -r -ps libdiptools.a $(OBJS)

      where $(OBJS) is a collection of all your *.o files. Read the ar man page to understand that command.
    2. Another option is to use ld with the -shared option to make shared libraries. Read the ld man page to figure out how to do this.

The Frontend

  1. Use Ncurses to develop simple frontend application for your library.
  2. The frontend should allow the user to load images and access all the functions in the API.
  3. A Ncurses How-To may be found here.

C++ References

  1. C++ Annotations
  2. Thinking In C++ - Vol 1 and 2

Do's and Dont's

  1. Do not mangle the API in any way. It will be tested with a test application and if the application does not run marks will be deducted.
  2. Your code must work in Fedora Core 2 Linux, which is installed on all the intel lab machines.
  3. Make sure your code does not generate compile time errors or warnings. Complie using the -Wall option.
  4. You must use Makefiles for compilation. Compilation errors will be penalized heavily. If you do not know how to use makefiles read Make documentation here.
  5. Coding on Windows, OS X etc. is forbidden !!
  6. Do NOT code in C. The API is in C++ - learn to use the language !!


  1. Make a html report of the results of various functions you implement illustrating their effects on various images.

CS783 : Digital Image Processing Course , Semester I : 2004-2005,
Department of Computer Science and Engineering, IIT Delhi.