Frequently Asked Questions (FAQ)

These FAQ are issues with either have special interest for Nuclear Medicine users or are issues that confused me. For general information, the ImageJ web site contains much more comprehensive information. Also see Burger W, Burge MJ: Digital image processing: An algorithmic introduction using java. Springer, New York. 2008. Please let me know if any of the following information is incorrect.

How do I read a DICOM file?

DICOM is a atrociously designed medical image format; however, it is generally unavoidable in Nuclear Medicine. Many DICOM images can be read directly with the ImageJ "File/Open ..." command. That very simple method will work for many single images and for many image sequences stored as a single file.

Image Sequences are often stored as separate files within a single folder. In this case use "File/Import/Image Sequence ...". You only need to select any one of the image files in a directory, and ImageJ will import all of the rest of the images.

The DICOM "standard" includes a tremendous number of formats. If "File/Open ..." or "File/Import/Image Sequence ..." cannot read the data consider downloading the Tudor DICOM Toolkit.

How can I see the DICOM fields?

The DICOM format includes a great deal of data describing the patient and how the data was collected. Unfortunately, it is bizarrely formatted. Fortunately, "File/Open ..." and "File/Import/Image Sequence ..." translate this data into a human readable format. The "Image/Show Info ..." command shows this data.

How do I annonymize a DICOM file?

The DICOM Rewriter plugin will annonymize the DICOM data.

How do I make DICOM data friendly for processing?

DICOM keeps data in the raw machine format. There are at least two steps needed to show the images. First, the data may need to be "rescaled" using a "Rescale Slope" and "Rescale Offset". "File/Open" and "File/Import/Image Sequence ..." translate these to a calibration. Second, a display window and offset are usually defined. "File/Open" and "File/Import Sequence ..." translate these a min and max displayed value. Thus, DICOM images will often be shown correctly by ImageJ. However, other plugins may operate on the raw data loosing the calibration or windowing.

The "DICOM Rescale" plugin in NucMed will rescale and window the data so that it is easier to operate on. Furthermore, some PET images anachronistically use different rescale parameters for each slice. "File/Import/Image Sequence ..." does not correct this. The "DICOM Rescale" plugin performs the necessary correction.

How are plugins installed?

There are actually several methods to install plugins. The simplest method is to place the plugin class file in the "plugins" folder which is in the "ImageJ" folder. Any .class file in the plugin folder which has a name including the "_" character will be installed as ImageJ starts up. Furthermore, ImageJ will also look in any of the first level sub-folders of the plugins folder, so plugins can be grouped together in sub folders. Plugins in a sub-folder of the plugins folder will be place in a sub-menu of the Plugins menu. ImageJ will not, however, look in the second level of sub-folders. A plugin may use many other Java classes, so pay attention to instillation instructions to avoid problems.

Three additional methods are used for installing plugins. ImageJ has built in plugins which are installed from the ij.jar file. Jar files (a type of zip file that is used by Java) can be used to install plugins. The user can install plugins with the "Plugins/Shortcuts/Install Plugins ..." command.

What is the plugin namespace?

There is a single namespace for all of the plugins. Two plugins with the same name or two copies of the same plugin will collide. ImageJ will give a warning when this happens. It is best to delete one of the plugins or one of the copies.

How do I avoid namespace problems (for programmers)?

I have appended my initials (TP) to many of my plugins to lessen the chance of collision with other peoples plugin names. I offer this as a suggestion, but this method seems unique to me.

There also can be collisions with Java class names for utility classes used by a plugin. One method of avoiding this problem is to use the Sun convention of naming using a web address. Another method which works well for groups of plugins is to place the plugins in a sub-folder of the plugins folder and place the utility classes in a sub-sub-folder of the plugins folder. The classpath will include the sub-folder containing the plugin, and the utility classes can be place in a package with the same name as the sub-sub-folder. This will reduce the chance of a name collision.

 

| Parker Plugins | Parker Applets | ImageJ Plugins | ImageJ Home |