From 80909e5b7e5ff37218e99169fffeb321395e11cf Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Tue, 14 Mar 2017 18:19:11 -0400 Subject: [PATCH 1/3] MNT: simplify creation of output array --- lib/matplotlib/image.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index f4045de4fa2c..fc3018483597 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -390,8 +390,6 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, mask = A.mask # ~A.mask # masked data A = rgba - output = np.zeros((out_height, out_width, 4), - dtype=A.dtype) alpha = 1.0 created_rgba_mask = True else: @@ -414,12 +412,12 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, elif A.shape[2] != 4: raise ValueError("Invalid dimensions, got %s" % (A.shape,)) - output = np.zeros((out_height, out_width, 4), dtype=A.dtype) - alpha = self.get_alpha() if alpha is None: alpha = 1.0 + output = np.zeros((out_height, out_width, 4), dtype=A.dtype) + _image.resample( A, output, t, _interpd_[self.get_interpolation()], self.get_resample(), alpha, From 68ad0c45dab2fdcc3aa8f637678beb72e0a5059d Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Tue, 14 Mar 2017 22:09:04 -0400 Subject: [PATCH 2/3] TST: minor tweaks to tests - add a cleanup decorator out of paranoia - deepcopy rather than copy colormaps that we mutate --- lib/matplotlib/tests/test_image.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py index d0e9c97c9747..1f2094c2b153 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py @@ -24,7 +24,7 @@ from numpy.testing import ( assert_array_equal, assert_array_almost_equal, assert_allclose) from matplotlib.testing.noseclasses import KnownFailureTest -from copy import copy +from copy import deepcopy from numpy import ma import matplotlib.image as mimage import matplotlib.colors as colors @@ -155,6 +155,7 @@ def test_imsave(): assert_array_equal(arr_dpi1, arr_dpi100) +@cleanup def test_imsave_color_alpha(): # Test that imsave accept arrays with ndim=3 where the third dimension is # color and alpha without raising any exceptions, and that the data is @@ -698,7 +699,7 @@ def test_mask_image_over_under(): Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) Z = 10*(Z2 - Z1) # difference of Gaussians - palette = copy(plt.cm.gray) + palette = deepcopy(plt.cm.gray) palette.set_over('r', 1.0) palette.set_under('g', 1.0) palette.set_bad('b', 1.0) @@ -761,7 +762,7 @@ def test_imshow_endianess(): remove_text=True, style='default') def test_imshow_masked_interpolation(): - cm = copy(plt.get_cmap('viridis')) + cm = deepcopy(plt.get_cmap('viridis')) cm.set_over('r') cm.set_under('b') cm.set_bad('k') From 44b409751eb0c70cc87831d3c786e9b7882f9d62 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Tue, 14 Mar 2017 22:10:11 -0400 Subject: [PATCH 3/3] API: tweak how masking from agg alpha channel is handeled Only mask out as 'bad' pixels which have alpha == 0 --- lib/matplotlib/image.py | 8 +++----- .../test_image/rotate_image.png | Bin 22401 -> 22586 bytes 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index fc3018483597..ad20f862173a 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -413,14 +413,12 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, raise ValueError("Invalid dimensions, got %s" % (A.shape,)) alpha = self.get_alpha() - if alpha is None: - alpha = 1.0 output = np.zeros((out_height, out_width, 4), dtype=A.dtype) _image.resample( A, output, t, _interpd_[self.get_interpolation()], - self.get_resample(), alpha, + self.get_resample(), alpha if alpha is not None else 1, self.get_filternorm() or 0.0, self.get_filterrad() or 0.0) if created_rgba_mask: @@ -445,7 +443,7 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, # and the pixels that Agg is telling us to ignore (relavent # to non-affine transforms) # Use half alpha as the threshold for pixels to mask. - out_mask = out_mask | (hid_output[..., 3] < .5) + out_mask = out_mask | (hid_output[..., 3] == 0) output = np.ma.masked_array( hid_output[..., 0], out_mask) @@ -463,9 +461,9 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, # Apply alpha *after* if the input was greyscale without a mask if A.ndim == 2 or created_rgba_mask: + alpha_channel = output[:, :, 3] alpha = self.get_alpha() if alpha is not None and alpha != 1.0: - alpha_channel = output[:, :, 3] alpha_channel[:] = np.asarray( np.asarray(alpha_channel, np.float32) * alpha, np.uint8) diff --git a/lib/matplotlib/tests/baseline_images/test_image/rotate_image.png b/lib/matplotlib/tests/baseline_images/test_image/rotate_image.png index 322e8c00478fe6459be10cd3503103fbfa0ddb5c..3955bf39a85d7ec2bb5c3a88a5ca0161dedda498 100644 GIT binary patch literal 22586 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 V#OP08XaNLr+RDMQ-27tVKL8q0KF9z7