Point Picker

An interactive ImageJ plugin that allows storage and retrieval of a collection of landmarks

Philippe Thévenaz, Biomedical Imaging Group, Swiss Federal Institute of Technology Lausanne
Figure 1. Interactive creation, moving, and disposal of landmarks.
GIF animation

I. Download

This distribution is dated March 6, 2013. It includes the complete set of source files, along with the precompiled classes and the Javadoc documentation.

II. Description

This Java class is written as a plugin for ImageJ. Please read the ImageJ documentation to learn how to install the plugin.

This plugin allows you to pick some points in an image or a stack and to save the list of pixel coordinates as a text file, which may be useful to further process the list within another application (e.g., for the computation of a path length). Alternatively, it is possible to read back the text file so as to restore the display of the coordinates, perhaps over another image if desired (e.g., to compare positions).

The points can be moved, deleted, and added at will. This plugin is able to handle no more than 1024 coordinates. Please note that the General Surgeon has determined that clicking that many times can be detrimental to your health.

A modified ImageJ toolbar is used to operate this plugin. The original toolbar is restored upon return from PointPicker.

III. User manual

Adding a point

Figure 2. Tool to add points.
Tool to add points is selected

To add points, simply click in the image, which will overlay a cross over the recorded position. The new point will become the current point which is highlighted. The image content is not modified.

Moving a point

Figure 3. Tool to move points.
Tool to move points is selected

To move points, drag within the image. The point closest to where you clicked the mouse will be moved to the position where you released the mouse. Alternatively, you can use the keyboard arrow keys to get a finer control over the current point, which is highlighted. It is not possible to move a point outside of the image frame.

Changing the current point

To highlight another point, you can click (no drag) in the image while the tool to move point is selected. The point closest to where you clicked the mouse will become the current point. Alternatively, you can use the <Tab> key to go from the current point to a new one.

Removing a point

Figure 4. Tool to remove points.
Tool to remove points is selected

To delete points, click within the image. The point closest to where you clicked will be removed from the list. Alternatively, you can use the <Forward-Delete> key to delete the point that is currently selected (caution: the <Delete> key will delete the whole image). No undo is available.


Figure 5. Tool to perform actions on the current slice.
Monoslice mode is selected
Figure 6. Tool to perform actions on all slices.
Multislice mode is selected

Each stack has an independent set of points. By default, the operations of adding, moving, or removing points will be performed on the current slice only. This is indicated by the tool selected as in Figure 5. To perform these operations on all slices at a time, select the multislice tool, as indicated in Figure 6. Points with matching color will then be collectively acted upon: adding a point will result in a new point being added on every slice, with a unique color; moving a point will collect points of the same color in the other slices and will move them to the desired position; removing a point will remove points of matching color from the other slices.

Removing all points

Figure 7. Menu to remove all points at once.
Menu to remove all points

To remove all points at once, double-click on the tool to remove a point. This should let appear the proper pop-up menu.

Selecting the point colors

Figure 8. Menu to select the color of the points.
Menu to select the color of the points

To set the color of the points, double-click on the tools to add or to move points. This should let appear a pop-up menu with two choices: [Rainbow] corresponds to the initial coloring scheme, where each point receives an individual color, while [Monochrome] gives the same highlight color to all points. That highlight color can be selected by activating the ImageJ menu [Edit→Options→ROI Color...].

Exporting/Importing the list of points

Figure 9. Tool to deal with store/retrieve operations.
File tool
Figure 10. Menu to deal with store/retrieve operations.
File menu

By clicking on the tool with a file icon, you access a menu that allows you to either save the list of points as a text file [Save as], to display the same list in the ImageJ main window [Show], or to retrieve a previously saved file [Open]. In the latter case, the actual list of points (if any) will be overwritten by the new one.

Image magnification/minification

Figure 11. Zooming tool.
Zooming tool

To magnify an image, select the magnifying tool and click in the image. To minify an image, use the same tool with the <Control> keyboard modifier.

Exiting PointPicker

Figure 12. Tool to exit PointPicker.
Exit tool
Figure 13. Menu to exit PointPicker.
Exit Menu

To go back to ImageJ, click on the tool displaying a microscope with a left arrow. Once PointPicker has left, the list of points is lost and can be recovered only if it had been previously saved to file.

IV. Application user interface

A technical Javadoc documentation is available.

V. Conditions of use

© 2013 Philippe Thévenaz

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

EPFL makes no warranties of any kind on this software and shall in no event be liable for damages of any kind in connection with the use and exploitation of this technology.