// Calculate_GP_01.txt // http://www.fnwi.uva.nl/objectj/examples/CalculateGP/ // N. Vischer 10-jun-2016 macro "Calculate GP [F1]"{ backgrounds = newArray(102, 103);//will be subtracted from images significants = newArray(10, 12);//smaller intensities will be invalid homeDir = getDirectory("home"); if (indexOf(homeDir, "norbert") >=0){ close("*"); open(homeDir + "Dropbox/Mich-/450nm.tif"); rename("A-" + getTitle); open(homeDir + "Dropbox/Mich-/520nm.tif"); rename("B-" + getTitle); } if (nImages != 2) exit("Exactly 2 images must be open: 1=ImageA, 2=ImageB"); selectImage(1); rename("A-" + getTitle); selectImage(2); rename("B-" + getTitle); titles = newArray(2); for (img = 0; img <2; img++){ selectImage(img + 1); titles[img] = getTitle; run("Subtract...", "value=" + backgrounds[img]); run("Enhance Contrast", "saturated=0.35"); changeValues(0, significants[img], 0); run("Enhance Contrast", "saturated=0.35"); } imageCalculator("Subtract create 32-bit", titles[0], titles[1]); rename("A-B"); imageCalculator("Add create 32-bit", titles[0], titles[1]); rename("A+B"); imageCalculator("Divide create 32-bit", "A-B","A+B"); rename("Ratio"); changeValues(-1, -1, NaN);//make extrema invalid changeValues(1, 1, NaN); //close("A-B"); //close("A+B"); selectImage("Ratio"); setLutRedWhiteBlue(); setMinAndMax(-1, 1); } macro "Set LUT example"{ setLutRedWhiteBlue(); setMinAndMax(-0.4, 0.8); } function setLutRedWhiteBlue() { getLut(reds, greens, blues); for (jj = 0; jj < 128; jj++) { blues[jj] = round(64.0 + jj / 128.0 * (255 - 64)); greens[jj] = blues[jj]; reds[jj] = 255; blues[255 - jj] = reds[jj]; reds[255 - jj] = blues[jj]; greens[255 - jj] = greens[jj]; } //set either end to black: reds[0] = 0; greens[0] = 0; blues[0] = 0; reds[255] = 0; greens[255] = 0; blues[255] = 0; setLut(reds, greens, blues); }