PS : ImageJ : Census
 
Download the complete package here: census.zip (unzip the contents into your "plugins" folder)
(Now bundled with the required ImageCanvasWithOverlay)

Census is a plugin that is the culmination of many years of expanding ImageJ to fulfill my research needs of quantifying image based data. It is at once both extremely simple and extremely powerful.

Simple: The Census plugin offers the user a simple click-once-to-measure interface without having to follow a series of steps for each measurement.
Powerful: The fundamental feature that gives Census its versatility is the use of "Breeds". Basically, a breed is a plugin for the Census plugin. Some simple breeds are already available for the user. However, these can _easily_ be modified to achieve any goal. Please see the Breeds section for a full discussion of this important component of the Census plugin.




(Sample Photo: The fibroblast nucleus image showing 2 roi objects counted and 3 circle objects counted)

WARNING: At this time, census will only work if an image has been saved as a file or opened from a file. As such, the sample images contained in ImageJ will fail. This should be easy to fix (in the future).


Census is a plugin to ImageJ. When run from ImageJ (with an image open), the Census interface opens.


The first line identifies the image the Census plugin is connected to. The Census plugin will only interface with one image. To examine a different image, Census needs to be run again.

The "Show Colors:" line allows the user to show or hide the markings corresponding to each color. This can be useful if the markings obscure the underlying image. By default all colors are actively shown. This line also shows the total count of objects for each color.

The "Active color:" line shows which color is active. Important note: when a mouse click is made on the image, an object is measured using the active breed type and the active color. If you want to click on the image without marking an object (for instance to mark a region using the freehand roi wand), the active color needs to be "None".

The "Show object as:" line allows the user to choose how the object for the active color are shown. By definition, every object must have a corresponding region. In outline more, the border of the objects region is shown. In fill mode the entire region is filled with the object's color. In point mode, only a point is shown (to minimize clutter).

At the end of the Show object line is the Breed selector. This lists the available breeds. Any future clicks with the active color will be of the breed type specified here. Change this to change the type of measurement made.

"Autofind" : Not yet implemented. When I get time... sorry.

"Load" : This will load in a set of saved object markings. (Note, by default this only load the coordinates at which the user originally marked the object, and will recalculate any corresponding measurements. This behavior can be changed (as with the Roi breed).

"Save": This saves a .csv file in the same directory as the image. The file contains information about each object, including at least its color and location (although this can be expanded to output more information if desired, such as the RNA to DNA intensity ratios measured by the RNADNAratio breed).

"IJ Measure" : this outputs measurements for each object marked using the parameters in ImageJ's "set measurements" window.



How to modify and make breeds:
When Census is started, it will look for a subfolder in "plugins" called "census". If it finds a filename ending with "breed.java" (case is ignored), then it will compile that breed file. It then looks for files ending with "breed.class", which it will include in the list of available breeds.



Holding SHIFT while clicking deletes the nearest object.
Holding CTRL while clicking popups a window to type text. That text is stored with the object data (annotation).


ToDo:
  1. Allow images with no file (newly created for example) to work with census
  2. Sanity checking: The Census plugin has very little sanity checking. As such it is probaly pretty easy to do something unexpected and cause the plugin to behave ... unexpectedly. You are warned.
  3. Multi image control: It would be nice to have one Census window be able to span across several images, but this will require a bit of a rewrite.
  4. Autofind: this is an obviously important and useful feature.