def finalizeResults(self): #create Overlay for connected components: if self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr["Connected Components/CC Results"] is None: colortab = OverlayItem.createDefault16ColorColorTable() myColor = OverlayItem.qrgb(255, 0, 0) ov = OverlayItem(self.ccThread.result, color = myColor, alpha = 1.0, colorTable = colortab, autoAdd = True, autoVisible = True) self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr["Connected Components/CC Results"] = ov else: self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr["Connected Components/CC Results"]._data = DataAccessor(self.ccThread.result)
def filterSynapses(self, inputOverlay, label, minsize, maxsize): #This is a special function to filter synapses. It assumes that the input overlay #is a threhsold overlay and computes it for equal probabilities, and then dilates the #the current connected components to the size of their counterparts in the equal #probability connected components. The resulting objects are filtered to be between minsize #and maxsize pixels in volume. #FIXME: This function is very specific and is only put here until ilastik 0.6 allows #to make it into a special workflow. Remove as soon as possible! parts = label.split(" ") labelnum = int(parts[0]) #labelname = parts[1] thres = self.dataMgr[self.dataMgr._activeImageNumber].Connected_Components.inputData cc = self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr["Connected Components/CC Results"] if thres is None: print "no threshold overlay" return if not isinstance(thres._data, MultivariateThresholdAccessor): print "no threshold overlay used for connected components" return if cc is None: print "No connected components overlay" return sfad = SynapseFilterAndSegmentor(self.dataMgr, labelnum, minsize, maxsize, cc, inputOverlay) objs_user = sfad.computeUserThreshObjects() objs_ref = sfad.computeReferenceObjects() #goodsizes = [s for s in goodsizes if s>100] #mingoodsize = min(goodsizes) #maxgoodsize = max(goodsizes) objs_final = sfad.filterObjects(objs_user, objs_ref) #create a new, filtered overlay: result = numpy.zeros(cc.shape, dtype = 'int32') objcounter = 1 for iobj in objs_final: for i in range(len(iobj[0])): result[0, iobj[0][i], iobj[1][i], iobj[2][i], 0] = int(objcounter) objcounter = objcounter +1 if self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr["Connected Components/CC Filtered"] is None: #colortab = [QtGui.qRgb(i, i, i) for i in range(256)] colortab = OverlayItem.createDefault16ColorColorTable() myColor = OverlayItem.qrgb(255, 0, 0) #QtGui.QColor(255, 0, 0) ov = OverlayItem(result, color = myColor, alpha = 1.0, colorTable = colortab, autoAdd = True, autoVisible = True) self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr["Connected Components/CC Filtered"] = ov else: self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr["Connected Components/CC Filtered"]._data = DataAccessor(result)
def finalizeResults(self): #create Overlay for connected components: if self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr[ "Connected Components/CC Results"] is None: colortab = OverlayItem.createDefault16ColorColorTable() myColor = OverlayItem.qrgb(255, 0, 0) ov = OverlayItem(self.ccThread.result, color=myColor, alpha=1.0, colorTable=colortab, autoAdd=True, autoVisible=True) self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr[ "Connected Components/CC Results"] = ov else: self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr[ "Connected Components/CC Results"]._data = DataAccessor( self.ccThread.result)
def filterSynapses(self, inputOverlay, label, minsize, maxsize): #This is a special function to filter synapses. It assumes that the input overlay #is a threhsold overlay and computes it for equal probabilities, and then dilates the #the current connected components to the size of their counterparts in the equal #probability connected components. The resulting objects are filtered to be between minsize #and maxsize pixels in volume. #FIXME: This function is very specific and is only put here until ilastik 0.6 allows #to make it into a special workflow. Remove as soon as possible! parts = label.split(" ") labelnum = int(parts[0]) #labelname = parts[1] thres = self.dataMgr[ self.dataMgr._activeImageNumber].Connected_Components.inputData cc = self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr[ "Connected Components/CC Results"] if thres is None: print "no threshold overlay" return if not isinstance(thres._data, MultivariateThresholdAccessor): print "no threshold overlay used for connected components" return if cc is None: print "No connected components overlay" return sfad = SynapseFilterAndSegmentor(self.dataMgr, labelnum, minsize, maxsize, cc, inputOverlay) objs_user = sfad.computeUserThreshObjects() objs_ref = sfad.computeReferenceObjects() #goodsizes = [s for s in goodsizes if s>100] #mingoodsize = min(goodsizes) #maxgoodsize = max(goodsizes) objs_final = sfad.filterObjects(objs_user, objs_ref) #create a new, filtered overlay: result = numpy.zeros(cc.shape, dtype='int32') objcounter = 1 for iobj in objs_final: for i in range(len(iobj[0])): result[0, iobj[0][i], iobj[1][i], iobj[2][i], 0] = int(objcounter) objcounter = objcounter + 1 if self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr[ "Connected Components/CC Filtered"] is None: #colortab = [QtGui.qRgb(i, i, i) for i in range(256)] colortab = OverlayItem.createDefault16ColorColorTable() myColor = OverlayItem.qrgb(255, 0, 0) #QtGui.QColor(255, 0, 0) ov = OverlayItem(result, color=myColor, alpha=1.0, colorTable=colortab, autoAdd=True, autoVisible=True) self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr[ "Connected Components/CC Filtered"] = ov else: self.dataMgr[self.dataMgr._activeImageNumber].overlayMgr[ "Connected Components/CC Filtered"]._data = DataAccessor( result)