From 0c1cda49730bdb7da4f9600dd69f55e8fd0cd4d1 Mon Sep 17 00:00:00 2001 From: Luke Campagnola Date: Wed, 25 Apr 2018 16:11:25 -0700 Subject: [PATCH] Gracefully handle case where image data has size==0 --- pyqtgraph/graphicsItems/ImageItem.py | 6 +++--- pyqtgraph/imageview/ImageView.py | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pyqtgraph/graphicsItems/ImageItem.py b/pyqtgraph/graphicsItems/ImageItem.py index d1e4aa9e..7d6c2596 100644 --- a/pyqtgraph/graphicsItems/ImageItem.py +++ b/pyqtgraph/graphicsItems/ImageItem.py @@ -465,11 +465,11 @@ class ImageItem(GraphicsObject): This method is also used when automatically computing levels. """ - if self.image is None: + if self.image is None or self.image.size == 0: return None,None if step == 'auto': - step = (int(np.ceil(self.image.shape[0] / targetImageSize)), - int(np.ceil(self.image.shape[1] / targetImageSize))) + step = (max(1, int(np.ceil(self.image.shape[0] / targetImageSize))), + max(1, int(np.ceil(self.image.shape[1] / targetImageSize)))) if np.isscalar(step): step = (step, step) stepData = self.image[::step[0], ::step[1]] diff --git a/pyqtgraph/imageview/ImageView.py b/pyqtgraph/imageview/ImageView.py index c64953de..1d38a6c3 100644 --- a/pyqtgraph/imageview/ImageView.py +++ b/pyqtgraph/imageview/ImageView.py @@ -633,8 +633,12 @@ class ImageView(QtGui.QWidget): cax = self.axes['c'] if cax is None: + if data.size == 0: + return [(0, 0)] return [(float(nanmin(data)), float(nanmax(data)))] else: + if data.size == 0: + return [(0, 0)] * data.shape[-1] return [(float(nanmin(data.take(i, axis=cax))), float(nanmax(data.take(i, axis=cax)))) for i in range(data.shape[-1])]