def calibrate(self, zoom=1, close=False): image = self.snapshotAtZoom(zoom) if close is True: self.md2.fastshutterisopen = False #CloseFastShutter() #image = image * (image > 0.25 * image.max()) if zoom in [1, 2, 3]: #do not try to fit in zoom 1, 2 and 3 params = [None] * 5 self.cData[zoom] = params data = self.images[zoom] z, x = numpy.unravel_index(data.argmax(), data.shape) else: params = gauss2d.fitgaussian(image) self.cData[zoom] = params if abs(self.cData[zoom][3]) < 100. and abs( self.cData[zoom][4]) < 100.: x = self.cData[zoom][2] z = self.cData[zoom][1] else: data = self.images[zoom] z, x = numpy.unravel_index(data.argmax(), data.shape) print 'zoom %s' % zoom print 'x, y: %s %s' % (x, z) self.beamposition[zoom] = {'z': z, 'x': x} self.md2.write_attribute('beampositionvertical', int(z)) self.md2.write_attribute('beampositionhorizontal', int(x))
def calibrate(self, zoom=1, close=False): image = self.snapshotAtZoom(zoom) if close is True: self.md2.fastshutterisopen = False #CloseFastShutter() #image = image * (image > 0.25 * image.max()) if zoom in [1, 2, 3]: #do not try to fit in zoom 1, 2 and 3 params = [None]*5 self.cData[zoom] = params data = self.images[zoom] z, x = numpy.unravel_index(data.argmax(), data.shape) else: params = gauss2d.fitgaussian(image) self.cData[zoom] = params if abs(self.cData[zoom][3]) < 100. and abs(self.cData[zoom][4]) < 100.: x = self.cData[zoom][2] z = self.cData[zoom][1] else: data = self.images[zoom] z, x = numpy.unravel_index(data.argmax(), data.shape) print 'zoom %s' % zoom print 'x, y: %s %s' % (x, z) self.beamposition[zoom] = {'z': z, 'x': x} self.md2.write_attribute('beampositionvertical', int(z)) self.md2.write_attribute('beampositionhorizontal', int(x))
def fitGauss(image): params = gauss2d.fitgaussian(image) return params
def fitGauss(self, image): params = gauss2d.fitgaussian(image) return params