Multi ROIs analysis / ROIs saving as .jpg

Posted by dgxn88 on
URL: http://imagej.273.s1.nabble.com/Multi-ROIs-analysis-ROIs-saving-as-jpg-tp5013731.html

Dear all,

I need to automatize the measurement of the length and yolk sac area of fish larvae which have been scanned in 12-well plates. The plates were always positioned at the very same place on the scanner, allowing for a selection of ROIs that applies to every images. I've came up with the following 2 options:

1) Make a macro that select the ROIs, calls another macro that run the particle analysis for the yolk sack area for every ROIs

2) Make a macro that select the ROIs an save these ROIs as .jpg. Use an other macro that batch process the particle analysis of the folder containing the ROIs as .jpg.

Considering my limited skills in programming in ImageJ, I've opted for the second option. The code I wrote so far is:

roiManager("reset")

// this select ROI of the top plate

makeOval(1520, 80, 560, 560)
roiManager("Add")
makeOval(2130, 80, 560, 560)
roiManager("Add")
makeOval(2740, 80, 560, 560)
roiManager("Add")
makeOval(3350, 80, 560, 560)
roiManager("Add")

makeOval(1520, 690, 560, 560)
roiManager("Add")
makeOval(2130, 690, 560, 560)
roiManager("Add")
makeOval(2740, 690, 560, 560)
roiManager("Add")
makeOval(3350, 690, 560, 560)
roiManager("Add")

makeOval(1520, 1300, 560, 560)
roiManager("Add")
makeOval(2130, 1300, 560, 560)
roiManager("Add")
makeOval(2740, 1300, 560, 560)
roiManager("Add")
makeOval(3350, 1300, 560, 560)
roiManager("Add")

//this select ROI in the middle plate

makeOval(1520, 2100, 560, 560)
roiManager("Add")
makeOval(2130, 2100, 560, 560)
roiManager("Add")
makeOval(2740, 2100, 560, 560)
roiManager("Add")
makeOval(3350, 2100, 560, 560)
roiManager("Add")

makeOval(1520, 2710, 560, 560)
roiManager("Add")
makeOval(2130, 2710, 560, 560)
roiManager("Add")
makeOval(2740, 2710, 560, 560)
roiManager("Add")
makeOval(3350, 2710, 560, 560)
roiManager("Add")

makeOval(1520, 3320, 560, 560)
roiManager("Add")
makeOval(2130, 3320, 560, 560)
roiManager("Add")
makeOval(2740, 3320, 560, 560)
roiManager("Add")
makeOval(3350, 3320, 560, 560)
roiManager("Add")

//this select ROI of the bottom plate

makeOval(1520, 4120, 560, 560)
roiManager("Add")
makeOval(2130, 4120, 560, 560)
roiManager("Add")
makeOval(2740, 4120, 560, 560)
roiManager("Add")
makeOval(3350, 4120, 560, 560)
roiManager("Add")

makeOval(1520, 4730, 560, 560)
roiManager("Add")
makeOval(2130, 4730, 560, 560)
roiManager("Add")
makeOval(2740, 4730, 560, 560)
roiManager("Add")
makeOval(3350, 4730, 560, 560)
roiManager("Add")

makeOval(1520, 5340, 560, 560)
roiManager("Add")
makeOval(2130, 5340, 560, 560)
roiManager("Add")
makeOval(2740, 5340, 560, 560)
roiManager("Add")
makeOval(3350, 5340, 560, 560)
roiManager("Add")

//this will rename the ROIs with the well IDs

roiManager("Select", 0)
roiManager("Rename", "1-A4")
roiManager("Select", 1)
roiManager("Rename", "1-A3")
roiManager("Select", 2)
roiManager("Rename", "1-A2")
roiManager("Select", 3)
roiManager("Rename", "1-A1")
roiManager("Select", 4)
roiManager("Rename", "1-B4")
roiManager("Select", 5)
roiManager("Rename", "1-B3")
roiManager("Select", 6)
roiManager("Rename", "1-B2")
roiManager("Select", 7)
roiManager("Rename", "1-B1")
roiManager("Select", 8)
roiManager("Rename", "1-C4")
roiManager("Select", 9)
roiManager("Rename", "1-C3")
roiManager("Select", 10)
roiManager("Rename", "1-C2")
roiManager("Select", 11)
roiManager("Rename", "1-C1")

roiManager("Select", 12)
roiManager("Rename", "2-A4")
roiManager("Select", 13)
roiManager("Rename", "2-A3")
roiManager("Select", 14)
roiManager("Rename", "2-A2")
roiManager("Select", 15)
roiManager("Rename", "2-A1")
roiManager("Select", 16)
roiManager("Rename", "2-B4")
roiManager("Select", 17)
roiManager("Rename", "2-B3")
roiManager("Select", 18)
roiManager("Rename", "2-B2")
roiManager("Select", 19)
roiManager("Rename", "2-B1")
roiManager("Select", 20)
roiManager("Rename", "2-C4")
roiManager("Select", 21)
roiManager("Rename", "2-C3")
roiManager("Select", 22)
roiManager("Rename", "2-C2")
roiManager("Select", 23)
roiManager("Rename", "2-C1")

roiManager("Select", 24)
roiManager("Rename", "3-A4")
roiManager("Select", 25)
roiManager("Rename", "3-A3")
roiManager("Select", 26)
roiManager("Rename", "3-A2")
roiManager("Select", 27)
roiManager("Rename", "3-A1")
roiManager("Select", 28)
roiManager("Rename", "3-B4")
roiManager("Select", 29)
roiManager("Rename", "3-B3")
roiManager("Select", 30)
roiManager("Rename", "3-B2")
roiManager("Select", 31)
roiManager("Rename", "3-B1")
roiManager("Select", 32)
roiManager("Rename", "3-C4")
roiManager("Select", 33)
roiManager("Rename", "3-C3")
roiManager("Select", 34)
roiManager("Rename", "3-C2")
roiManager("Select", 35)
roiManager("Rename", "3-C1")

//this will save the ROIs as .jpeg

n = roiManager("count");
 for (i=0; i<n; i++) {
        roiManager("select", i);
        run("Duplicate...");
        saveAs("Jpeg");
        close();
  }
  </i>

I'm quite close to achieve the second option except that I still need to click. I would like that the last part saves the ROIs as .jpeg with the ROI's name (eg. 1-C4) and in a specified folder (ideally the folder which contains the scan).

If you have any suggestion or if you know how to go for the first option, I'd be more than thankful. The sample size is about 10K larvae so the need to automatize the procedure is particularly high.

Best,
David