def applyExpression(self, expr=None, normalized=None): if expr is not None: self._savedExpression = expr else: d = quickdialog.QuickDialog(self, "Enter Expression") d.expression = quickdialog.OptionalStringInput( d, "Execute 'lambda x: ") d.expression.setText(self._savedExpression) d.expression.setFocus() d.addSpacing(10) d.norm = quickdialog.CheckBox( d, "Normalize intensity to range 0...255") d.norm.setChecked(self._normalized) if d.exec_() == 0: return self._savedExpression = d.expression.text() self._normalized = True if d.norm.selection() else False if normalized is not None: self._normalized = normalized try: image, normalized = self.getDisplayedImage() except Exception as e: qt.QMessageBox.critical(self, "Error Applying Expression", str(e)) return OverlayViewer.setImage(self, image.qimage(normalized))
def applyExpression(self, expr=None, normalized=None): if expr is not None: self._savedExpression = expr else: d = quickdialog.QuickDialog(self, "Enter Expression") d.expression = quickdialog.OptionalStringInput(d, "Execute 'lambda x: ") d.expression.setText(self._savedExpression) d.expression.setFocus() d.addSpacing(10) d.norm = quickdialog.CheckBox(d, "Normalize intensity to range 0...255") d.norm.setChecked(self._normalized) if d.exec_() == 0: return self._savedExpression = d.expression.text() self._normalized = True if d.norm.selection() else False if normalized is not None: self._normalized = normalized try: image, normalized = self.getDisplayedImage() except Exception as e: qt.QMessageBox.critical(self, "Error Applying Expression", str(e)) return OverlayViewer.setImage(self, image.qimage(normalized))
def setImage(self, image, normalize=True): if not hasattr(image, "qimage"): image = image.view(vigra.Image) self.image = image self._normalized = normalize OverlayViewer.setImage(self, image.qimage(normalize))
d.norm.setChecked(self._normalized) if d.exec_() == 0: return self._savedExpression = d.expression.text() self._normalized = True if d.norm.selection() else False if normalized is not None: self._normalized = normalized try: image, normalized = self.getDisplayedImage() except Exception, e: qt.QMessageBox.critical(self, "Error Applying Expression", str(e)) return OverlayViewer.setImage(self, image.qimage(normalized)) def getDisplayedImage(self): """Returns the displayed image and the normalize flag (BYTE or NBYTE) as tuple/pair. Note that the returned image is the original image if no expression is applied, i.e. you should not change the returned object. If active, the expression is applied via eval() on every call of getDisplayedImage().""" if not self._savedExpression or self._savedExpression == "x": self._savedExpression = "x" image = self.image else: for f in vigra.ufunc.__all__: