Radial Profile in ImageJ

Hi, I am currently using the radial profile function in imagej. I have to do radial profile for different ROI in an image across multiple frames and multiple channels. Currently, I am doing radial profile for a ROI one at a time, which is very time consuming as I do have a lot of images. Is there any way this can be done faster across all ROI? Thank you.

Good day,

yes it can be done if your ROIs are listed in the ROI Manager.

You can use an ImageJ-macro and loop through the ROI Manager list and apply the “Radial Profile”-plugin to one ROI after the other.

Regards

Herbie

Hi,

I really appreciate your prompt reply while I’m currently dealing with this haha.

Thank you for your suggestion, however, as I am very new to ImageJ, do you mind directing me to a suitable imagej macro on the internet?

Thank you so much.

Sorry, but you have to code it yourself.

Writing ImageJ-macros is really easy and you can use the ImageJ Macro Recoder to get a first structure of what you need.

Please study this document
https://imagej.nih.gov/ij/developer/macro/macros.html
and get acquainted with the many useful functions available for macro coding:
https://imagej.nih.gov/ij/developer/macro/functions.html

In any case you need to thoroughly study the ImageJ User Guide:
https://imagej.nih.gov/ij/docs/guide/index.html

Finally please note that we are here to help but not to do your job!

Regards

Herbie

Hi Herbie,

Sorry I didnt have that intention, being unfamiliar with macros myself, I thought there was something already available on the internet that would be helpful.

Thank you for your references included, I’ll look through them and try my best to understand it.

Thank you so much for your help:grinning::grinning:

Hi @zhiming96,

I agree with @anon96376101 in that

we are here to help but not to do your job

Nonetheless, if you are not familiar at all with macros, a little push can go a long way. If this helps, you might try to start building something from these lines:

nrois=roiManager("count"); // gets the number of rois in RM
for(i=0; i<nrois; i++){ // loops through the list
	roiManager("select", i);

	// add here the code to run on each ROI
	
	}

Good luck!

Nico

Nico,

because you now started the code, here is the beef that comes between the bun-halfs:

List.setMeasurements;
run("Radial Profile", "x="+List.getValue("X")+" y="+List.getValue("Y")+" radius="+0.5*List.getValue("Width"));

Not that difficult …

Regards

Herbie

1 Like