//Teil unter Schleife der Reference Funktion wird zu oft aufgerufen //Bessere Unterteilung benötigt // macro "NEW_Segmentaion" { s = File.separator; count = 0; zahl = 1; Ritems = newArray("multiple KCs","single KC"); Dialog.create("Segmentation"); Dialog.addRadioButtonGroup("", Ritems, 1, 2, "multiple KCs") //Dialog.addCheckbox("Input Directory = Output Directory", true); Dialog.addMessage("Extract Mean Gray Values from ROI:"); items = newArray("_C2_Reg","_C1_Reg","_C2_to_C1_Reg_C2_Spl","_C2_to_C1_Reg_C1_Spl","_C1_to_C2_Reg_C2_Spl","_C1_to_C2_Reg_C1_Spl","_Stack_Extr_C2_Spl","_Stack_Extr_C1_Spl"); Dialog.addChoice("Extract From:", items, "_C2_to_C1_Reg_C2_Spl"); items1 = newArray("Maximum Intensity", "Average Intensity"); Dialog.addChoice("Projection for ROI:", items1, "Average Intensity"); Dialog.addSlider("ROI diameter", 2, 16, 8); Dialog.addCheckbox("Search active Cells in Reference?", 1); //Dialog.addMessage("Delete Files:"); Dialog.show(); KC = Dialog.getRadioButton(); //inDisOutD=Dialog.getCheckbox(); ExtrFrom=Dialog.getChoice(); Projection=Dialog.getChoice(); GR = Dialog.getNumber(); red = Dialog.getCheckbox(); if (red) { Dialog.create("Red Reference"); items=newArray("Stack_Extr", "C2_to_C1_Reg", "C1_to_C2_Reg"); Dialog.addChoice("", items, "C1_Reg.tif"); items = newArray("C1", "C2"); Dialog.addMessage("Which Channel is Reference?"); Dialog.addRadioButtonGroup("", items, 1, 2, "C2"); Dialog.addSlider("Active Tolerance", 2, 16, 8); Dialog.show(); ExtrFrom2 = Dialog.getChoice(); keep = Dialog.getRadioButton(); T = Dialog.getNumber(); } inDir=getDirectory("Choose the Raw Data Containing Folder"); inDisOutD=true; outDir=inDir; /* if (red) { SchActive = Reference(inDir); //print(SchActive); //array.show(SchActive); } else { Active = false; } */ if (KC == "single KC") { MeanGrayValueExtraction(inDir); } else { //install multipleKCSegmentation(inDir); } close("Results"); close("ROI Manager"); function MeanGrayValueExtraction(inDir) { list = getFileList(inDir); for (i=0; i0) { //for (k = 0; k < L; k++){ ActiveX = Array.slice(Active,0,Active.length/2); ActiveY = Array.slice(Active,Active.length/2,Active.length); for (k = 0; k < ActiveX.length; k++) { print("k: "+k); print("ActiveX: "+ActiveX[k]+"x: "+x); print((ActiveX[k]-x)+" "+(ActiveY[k]-y)); hilfX = abs(ActiveX[k]-x) < 6; hilfY = abs(ActiveY[k] -y) < 6; print("hilfX: "+hilfX+" hilfY: "+hilfY); if ((abs(ActiveX[k]-x)< T+1) && (abs(ActiveY[k] -y)