// Dave Barry, Francis Crick Institute // 2018.04.05 // david.barry@crick.ac.uk // Performs template matching, then filters detected positives based on signal in a third channel var title = "Template Matcher"; var image = ""; var template = ""; var threshImage = ""; var threshMethod = ""; var corrThresh = 0.75; macro "Template Matcher"{ showDialog(); selectWindow(image); n1 = nSlices(); selectWindow(threshImage); if(n1 != nSlices()){ exit("Bead and cell marker stacks must have same number of slices"); } selectWindow(template); if(nSlices() > 1){ exit("Template image must be a single slice."); } run("TemplateMatching Extensions"); Ext.runTemplateMatcher(image, template, corrThresh); resultTitle = getTitle(); count = Overlay.size; run("To ROI Manager"); selectWindow(threshImage); run("From ROI Manager"); roiManager("deselect"); roiManager("delete"); print("Filtering Rois..."); thresholds = newArray(nSlices()); for(s=1;s<=nSlices(); s++){ setSlice(s); setAutoThreshold(threshMethod + " dark"); getThreshold(thresholds[s-1], upper); } resetThreshold(); outputRois = newArray(count); index = 0; for(i=0; i