Changing 'Point' tool to 'Circle' tool

Hi everyone,

I am in the midst of analyzing fluorescent micrographs, and I want to measure fluorescence intensity of numerous regions in the same micrograph.

I am currently using the Point tool + Measure to record a single pixel’s information, but I want to expand it to a 2-dimensional circular area of constant size. I know that I can use the ‘Oval Selection’ tool repeatedly, but since it is a scalable tool, I am finding it difficult to draw perfect circles of identical radii in an efficient way. I want to measure many dozens of points per micrograph, and have about 100 micrographs to analyze.

Ideally, I want to be able click on a particular spot and for it to automatically draw a circular area of a defined (constant) size repeatedly. I’m completely new to macros and the like, and haven’t figured out a way of doing this.

If anyone has any ideas please let me know!

Hello Sliving -

I do not believe that Fiji / ImageJ has built-in support for purely
circular Rois or a tool for drawing them. But it should be easy
to do what (I think) you want with a simple script or macro.

Take a look at this old thread:

Draw circles on pre-defined point annotations …

and the IJM macro outlined in its second post.

If you think you might be comfortable working with macros (or
scripts), see if you can get started with that macro. See how far
you can get, and then post what you have with further questions.

The following doesn’t match exactly what that macro does, but
would it make sense to use a work-flow where you use the Point
tool to select a series of point Rois, adding each one to the Roi
manager using the RoiManger’s Add button? (Or you could use
the Multi-point tool to select a single multi-point Roi and add it
to the RoiManager.) You could then loop over the points in the
RoiManager, and – as in the macro referenced above – add a
series of circular Oval Rois to the Roi manager.

Thanks, mm

If you apply a mean filter with Process → Filters → Mean… then effectively every pixel in your image is replaced by the mean of the surrounding pixels within a circle*.

In that case, you can continue to use the points tool to read off the value for single pixels in the filtered image - since each pixel’s value will effectively now be calculated from a circle of a fixed radius. Efficiently.

You can do something similar with minimum and maximum filters if you need these measurements as well.

Some info at https://petebankhead.gitbooks.io/imagej-intro/chapters/filters/filters.html#sec-processing_mean

*-That’s not necessarily the case for all commands or software that apply mean filters… they may also be square, or some other shape.

You can do this with a simple macro tool, for example:

    var radius = 10;

    macro "Circle Tool - C00cO11cc" {
        getCursorLoc(x, y, z, flags);
        makeOval(x-radius, y-radius, radius*2, radius*2);
    }

    macro "Circle Tool Options" {
        radius = getNumber("Radius: ", radius);
    }

Save this code as “Circle_Tool.ijm” and install the tool it defines on the ImageJ tool bar using the Plugins>Macros>Install command.

1 Like

Hi everyone,

Thank you very much for your help in working through this issue! I’ve incorporated several of your suggestions into my workflow and I’ve got something that’s doing the trick.

Thanks again!