import ch.psi.pshell.ui.App as App import ch.psi.pshell.imaging.DeviceSource as DeviceSource class ImgageNorm (DeviceSource): def __init__(self, name, dev): DeviceSource.__init__(self, name, dev) self.filenane = get_setting("NORM_FILE") try: ip=open_image(self.filenane) #TRANSPOSE - ImageJ stores the data transposed ip.getProcessor().rotate(-90) ip.getProcessor().flipVertical() array = get_ip_array(ip) self.ref = Data(array) threshold = get_outliers_threshold() self.outliers_mask = get_outliers_mask() if self.outliers_mask is not None: self.ref.mult(self.outliers_mask) if threshold>0: self.ref.threshold(threshold, False, None) except: self.ref = None self.pushData(None) print sys.exc_info()[1] def onDataReceived(self,val): if self.ref: n = Data(eiger.getDataMatrix().take()) if self.outliers_mask is not None: n.mult(self.outliers_mask) threshold = get_outliers_threshold() if threshold>0: n.threshold(threshold, False, None) n.div(self.ref) self.pushData(n) norm = ImgageNorm("norm", eiger.dataArray) norm.monitored=True add_device(norm, True) show_panel(norm) dlg = App.getInstance().getDevicePanelManager().getPanelDialog("norm"); dlg.setSize(800,800)