Project Description

A library and control that allows the creation, manipulation, display and IO (as SVG files) of annotations on images. It is part of a larger framework called CIPF (Colourimetric Image Processing Framework) which maybe added to Codeplex later, depending on how this project works out. This framework is used mainly to develop medical image processing tools, which are usually quite hard problems requiring user interaction, guidance,and corrections, which is where the annotations come in.


Project consists of an Annotations class library which contains all the code for the annotations, a SimpleAnnotatedImage custom control that takes care of displaying annotations with an image and possibly some masks, and a simple Windows Forms application called SimpleAnnotatedImageViewer that displays an image on which annotations can be drawn. Documentation in the form of a compiled html file is also included.

I have tried to ensure consistency in the design of the library (this is especially true for the whole CIPF), but I may need help on some of the architectural choices I made and possibly include unit tests to ensure more rigourous testing when changing code. I could also use help in making some nicer cursors, and I'm not altogether happy with the choices (mouse buttons, keys, etc. ...) I made for interacting with the annotations. In short, I need someone to throw a critical eye on my work!

Definitions and conventions

  • An annotation is a set of points. It can either be closed or open. Either way, it defines a simple region.
  • An annotation container is a set of annotations that belong together. By combining the regions of the anntations a container can define quite complex regions.
  • A mask is a 1 or 8 bit image that contains some logical information about the underlying image, e.g. if a pixel belongs to some or ther class.

List of features

  • Display of annotations and masks as overlays over an image.
  • Display of the regions defined by the annotation containers.
  • Display properties and dialogs for the points, annotations and annotation containers: visibility, color, region visibility, drawing point size, drawing line size, ....
  • Interactive creation of the annotations and their containers
  • Simple manipulation of annotations: move, delete, move of a point, move of the whole container, ...
  • Conversion of masks to annotation containers and vice versa.
  • IO of annotations as SVG files.
  • IO can be an URL, both for the images and the annotations. This allows inclusion in smartclients.

Last edited Jun 28, 2007 at 10:18 AM by yvdh, version 12