Skip to content

Commit

Permalink
Autocontrast on load
Browse files Browse the repository at this point in the history
  • Loading branch information
LaurentRDC committed Jan 16, 2021
1 parent 6357d2c commit 374ef79
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
13 changes: 8 additions & 5 deletions iris/gui/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ class IrisController(QtCore.QObject, metaclass=ErrorAware):
status_message_signal = QtCore.pyqtSignal(str)

raw_data_signal = QtCore.pyqtSignal(object)
averaged_data_signal = QtCore.pyqtSignal(object)
averaged_data_signal = QtCore.pyqtSignal(object, bool)
powder_data_signal = QtCore.pyqtSignal(object, object)

time_series_signal = QtCore.pyqtSignal(object, object)
Expand Down Expand Up @@ -168,14 +168,17 @@ def display_raw_data(self, timedelay_index, scan):
)

@QtCore.pyqtSlot(int)
def display_averaged_data(self, timedelay_index):
@QtCore.pyqtSlot(int, bool)
def display_averaged_data(self, timedelay_index, autocontrast=False):
"""
Extract processed diffraction pattern.
Parameters
----------
timedelay_index : int
Time-delay index.
autocontrast : bool, optional
Whether or not the contrast of the image should be adjusted.
Returns
-------
Expand Down Expand Up @@ -204,7 +207,7 @@ def display_averaged_data(self, timedelay_index):
out=self._averaged_data_container,
)

self.averaged_data_signal.emit(self._averaged_data_container)
self.averaged_data_signal.emit(self._averaged_data_container, autocontrast)
self.status_message_signal.emit(f"Displaying data at {timedelay:.3f}ps.")

@QtCore.pyqtSlot()
Expand Down Expand Up @@ -475,7 +478,7 @@ def load_dataset(self, path):
self.processed_dataset_loaded_signal.emit(True)
self.powder_dataset_loaded_signal.emit(is_powder)

self.display_averaged_data(timedelay_index=0)
self.display_averaged_data(timedelay_index=0, autocontrast=True)
if is_powder:
self.display_powder_data()
else:
Expand All @@ -494,7 +497,7 @@ def close_dataset(self):
self.processed_dataset_loaded_signal.emit(False)
self.powder_dataset_loaded_signal.emit(False)

self.averaged_data_signal.emit(None)
self.averaged_data_signal.emit(None, True)
self.powder_data_signal.emit(None, None)

self.status_message_signal.emit("Dataset closed.")
Expand Down
14 changes: 7 additions & 7 deletions iris/gui/data_viewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,25 +123,25 @@ def _update_roi_bounds_text(self, rect):
self.roi_bottomright_text.setPos(y2, x2)
self.roi_bottomright_text.setText(f"({y2},{x2})")

@QtCore.pyqtSlot(object)
def display(self, image):
@QtCore.pyqtSlot(object, bool)
def display(self, image, autocontrast=False):
"""
Display an image in the form of an ndarray.
Parameters
----------
image : ndarray or None
If None, the display is cleared.
autocontrast: bool, optional
If True, the image contrast will be adjusted
"""
if image is None:
self.image_viewer.clear()
return

# autoLevels = False ensures that the colormap stays the same
# when 'sliding' through data. This makes it easier to compare
# data at different time points.
# Similarly for autoRange = False
self.image_viewer.setImage(image, autoLevels=False, autoRange=False)
self.image_viewer.setImage(
image, autoLevels=autocontrast, autoRange=autocontrast
)
self.update_timeseries_rect()

@QtCore.pyqtSlot(object, object)
Expand Down

0 comments on commit 374ef79

Please sign in to comment.