Esempio n. 1
0
    def loopProcessImage(self, imgdata):

        #creates self.peaktree and filterLoop sets self.filtarray
        self.peaktree = filterLoop.FilterLoop.loopProcessImage(self, imgdata)

        if self.params['background'] is False:
            apDisplay.printMsg("Found " + str(len(self.peaktree)) +
                               " particles for " +
                               apDisplay.shortenImageName(imgdata['filename']))
        self.stats['lastpeaks'] = len(self.peaktree)

        if self.params['nojpegs'] is False:
            if self.threadJpeg is True:
                threading.Thread(target=apPeaks.createPeakJpeg,
                                 args=(imgdata, self.peaktree, self.params,
                                       self.filtarray)).start()
            else:
                apPeaks.createPeakJpeg(imgdata, self.peaktree, self.params,
                                       self.filtarray)
        elif self.params['background'] is False:
            apDisplay.printWarning("Skipping JPEG creation")

        if self.params['defocpair'] is True:
            self.sibling, self.shiftpeak = apDefocalPairs.getShiftFromImage(
                imgdata, self.params['sessionname'])
        return
	def getParticlesFromStack(self, stackdata,imgdata,is_defocpair=False):
		"""
		For image (or defocal pair), imgdata get particles in corresponding stack
		"""
		if is_defocpair is True:
			sibling, shiftpeak = apDefocalPairs.getShiftFromImage(imgdata, self.params['sessionname'])
			if shiftpeak is None:
				return [],{'shiftx':0, 'shifty':0, 'scale':1}
			shiftdata = {'shiftx':shiftpeak['shift'][0], 'shifty':shiftpeak['shift'][1], 'scale':shiftpeak['scalefactor']}
			searchimgdata = sibling
		else:
			searchimgdata = imgdata
			shiftdata = {'shiftx':0, 'shifty':0, 'scale':1}

		partq = appiondata.ApParticleData()
		partq['image'] = searchimgdata

		stackpartq = appiondata.ApStackParticleData()
		stackpartq['stack'] = stackdata
		stackpartq['particle'] = partq
		
		stackpartdatas = stackpartq.query()

		partdatas = []
		partorder = []
		for stackpartdata in stackpartdatas:
			if self.params['partlimit'] and self.params['partlimit'] < stackpartdata['particleNumber']:
				continue
			partdata = stackpartdata['particle']
			partdatas.append(partdata)
			partorder.append(stackpartdata['particleNumber'])
		partdatas.reverse()
		partorder.reverse()
		self.writeStackParticleOrderFile(partorder)
		return partdatas, shiftdata
    def getParticlesFromStack(self, stackdata, imgdata, is_defocpair=False):
        """
                For image (or defocal pair), imgdata get particles in corresponding stack
                """
        if is_defocpair is True:
            sibling, shiftpeak = apDefocalPairs.getShiftFromImage(
                imgdata, self.params['sessionname'])
            if shiftpeak is None:
                return [], {'shiftx': 0, 'shifty': 0, 'scale': 1}
            shiftdata = {
                'shiftx': shiftpeak['shift'][0],
                'shifty': shiftpeak['shift'][1],
                'scale': shiftpeak['scalefactor']
            }
            searchimgdata = sibling
        else:
            searchimgdata = imgdata
            shiftdata = {'shiftx': 0, 'shifty': 0, 'scale': 1}

        partq = appiondata.ApParticleData()
        partq['image'] = searchimgdata

        stackpartq = appiondata.ApStackParticleData()
        stackpartq['stack'] = stackdata
        stackpartq['particle'] = partq

        stackpartdatas = stackpartq.query()

        partdatas = []
        partorder = []
        for stackpartdata in stackpartdatas:
            if self.params['partlimit'] and self.params[
                    'partlimit'] < stackpartdata['particleNumber']:
                continue
            partdata = stackpartdata['particle']
            partdatas.append(partdata)
            partorder.append(stackpartdata['particleNumber'])
        partdatas.reverse()
        partorder.reverse()
        self.writeStackParticleOrderFile(partorder)
        return partdatas, shiftdata
        def loopProcessImage(self, imgdata):

                #creates self.peaktree and filterLoop sets self.filtarray
                self.peaktree = filterLoop.FilterLoop.loopProcessImage(self, imgdata)

                if self.params['background'] is False:
                        apDisplay.printMsg("Found "+str(len(self.peaktree))+" particles for "
                                +apDisplay.shortenImageName(imgdata['filename']))
                self.stats['lastpeaks'] = len(self.peaktree)

                if self.params['nojpegs'] is False:
                        if self.threadJpeg is True:
                                threading.Thread(target=apPeaks.createPeakJpeg, args=(imgdata, self.peaktree, self.params, self.filtarray)).start()
                        else:
                                apPeaks.createPeakJpeg(imgdata, self.peaktree, self.params, self.filtarray)
                elif self.params['background'] is False:
                        apDisplay.printWarning("Skipping JPEG creation")

                if self.params['defocpair'] is True:
                        self.sibling, self.shiftpeak = apDefocalPairs.getShiftFromImage(imgdata, self.params['sessionname'])
                return
 def processImage(self, imgdata):
     self.sibling, self.shiftpeak = apDefocalPairs.getShiftFromImage(
         imgdata, self.params['sessionname'])
 def processImage(self, imgdata):
         self.sibling, self.shiftpeak = apDefocalPairs.getShiftFromImage(imgdata, self.params['sessionname'])