problem overlaying from ROI manager in macro

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

problem overlaying from ROI manager in macro

dobensl
I am writing a macro to overlay a heat map of particle orientation measurements (over 360 degrees) as colors filling the particles overlayed back onto the original image. The macro works fine until the last step when I would like to recall the original image and from ROI overlay the colors. Interestingly, I can not close the ramp legend nor the thresholded particles image with this:

run("Close All");

open(path_name);
run("RGB Color");
run("From ROI Manager”);

I can close the windows if I open a new macro with

run("Close All");


Here is the whole macro, using the “blobs” as an example; if you try it, just hit “return” to move past the dialog box; scroll to the last lines of the macro to see what I’ve written and if you could explain what the problem is down there, I’d be eternally grateful!


best,

Len Dobens

////////////////////
var path_name = getDirectory("image")+ getInfo("image.filename");


run("Blobs (25K)");

run("Make Binary");
 run("Set Measurements...", "centroid center feret's redirect=None decimal=3");

Dialog.create("Settings");
  Dialog.addNumber("Particle width:", 5);
  Dialog.addNumber("Opacity", 50);
  Dialog.addChoice("Lut:", newArray("32_Colors", "Ice", "Spectrum", "20_Colors"));
  Dialog.show();
  z = Dialog.getNumber();
  opac = Dialog.getNumber();
  heatmap = Dialog.getChoice();


 run("Analyze Particles...", "size=z-Infinity show=Overlay display exclude clear add");


 run("To ROI Manager");
 roiManager("Show All without labels");

Overlay.drawLabels(false);

for (i=0; i<nResults; i++) {
     x11 = getResult("FeretX",i);
     y11 = getResult("FeretY",i);
     length = getResult("Feret",i);
     degrees = getResult("FeretAngle",i);
     if (degrees>90)
        degrees -= 180;
     angle = degrees*PI/180;
     x21 = x11 + cos(angle)*length;
     setResult("x21", i, x21);
     y21 = y11 - sin(angle)*length;
     setResult("y21", i, y21);

     x31 = getResult("X",i);
     y31 = getResult("Y",i);

     makeLine(x31, y31, x11, y11);
     getPixelSize(unit, pw, ph);
     dz = (x31 - x11)*pw;
     da = (y31 - y11)*ph;
     distance1 = sqrt(dz*dz + da*da);
     setResult("D1", i, distance1);
     updateResults;

  makeLine(x31, y31, x21, y21);
     getPixelSize(unit, pw, ph);
     dx = (x31 - x21)*pw;
     dy = (y31 - y21)*ph;
     distance2 = sqrt(dx*dx + dy*dy);
     setResult("D2", i, distance2);
     updateResults;

}

for (i=0; i<nResults; i++) {

     D1 = getResult("D1",i);
     D2 = getResult("D2",i);
     x11 = getResult("FeretX",i);
     y11 = getResult("FeretY",i);
     x21 = getResult("x21",i);
     y21 = getResult("y21",i);

     if (D1 > D2) {
      setResult("xh", i, x11);
  setResult("xt", i, x21);
  setResult("yh", i, y11);
  setResult("yt", i, y21);
  updateResults;setTool("arrow");

   } else {

setResult("xh", i, x21);
  setResult("xt", i, x11);
setResult("yh", i, y21);
setResult("yt", i, y11);
  }
}

for (i=0; i<nResults; i++) {
xh = getResult("xh",i);
xt = getResult("xt",i);
yh = getResult("yh",i);
yt = getResult("yt",i);
degrees = getResult("FeretAngle",i);


if (xh > xt && yh < yt){
angle2 = degrees + 180;
setResult("angle360", i, angle2);
updateResults;
}

if (xh < xt && yh > yt){
angle2 = degrees + 0;
setResult("angle360", i, angle2);
updateResults;
}

if (xh > xt && yh > yt){
angle2 = degrees + 0;
setResult("angle360", i, angle2);
updateResults;
}

if (xh < xt && yh < yt){
angle2 = degrees + 180;
setResult("angle360", i, angle2);
}
}

run("RGB Color");
roiManager("Show All without labels");

if (heatmap == "32_Colors") {
run("ROI Color Coder", "measurement=angle360 lut=32_Colors width=0 opacity="+ opac +" range=Min-Max n.=5 decimal=0 ramp=[256 pixels] font=SansSerif font_sie=14 draw");

} else {

if (heatmap == "Ice") {
run("ROI Color Coder", "measurement=angle360 lut=Ice width=0 opacity="+ opac +" range=Min-Max n.=5 decimal=0 ramp=[256 pixels] font=SansSerif font_size=14 draw");

} else {

if (heatmap == "Spectrum") {
run("ROI Color Coder", "measurement=angle360 lut= Spectrum width=0 opacity="+ opac +" range=Min-Max n.=5 decimal=0 ramp=[256 pixels] font=SansSerif font_size=14 draw");

} else {

if (heatmap == "20_Colors") {
run("ROI Color Coder", "measurement=angle360 lut=20_Colors width=0 opacity="+ opac +" range=Min-Max n.=5 decimal=0 ramp=[256 pixels] font=SansSerif font_size=14 draw");

}
}

run("Close All");

open(path_name);
run("RGB Color");
run("From ROI Manager");





///////////////////


Leonard Dobens, PhD
Professor of Molecular Biology and Biochemistry
SCB312
School of Biological Sciences
University of Missouri-Kansas City
5007 Rockhill Road
Kansas City, MO 64110
8162356272
[hidden email]<mailto:[hidden email]>




--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: problem overlaying from ROI manager in macro

dobensl
solved the confusion - I was missing a couple of brackets in the macro - problem solved!

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html