From 1a7c4efef5eede5a03c3d75754f6b3698a2f0cba Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Sun, 5 Feb 2017 14:32:51 -0500 Subject: [PATCH] FIX: masked images with interpolation When determining which pixels to mask in the resampled image, if _any_ contribution to final value comes from a masked pixel, mask the result. Due to Agg special-casing the meaning of the alpha channel, the interpolation for the mask channel needs to be done separately. This is probably a template for doing the over/under separately. print out exact hash on travis --- .travis.yml | 1 + lib/matplotlib/image.py | 50 ++++- .../imshow_masked_interpolation.pdf | Bin 0 -> 27055 bytes .../imshow_masked_interpolation.png | Bin 0 -> 19273 bytes .../imshow_masked_interpolation.svg | 185 ++++++++++++++++++ .../test_image/mask_image_over_under.png | Bin 27283 -> 27319 bytes lib/matplotlib/tests/test_image.py | 40 +++- 7 files changed, 266 insertions(+), 10 deletions(-) create mode 100644 lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.png create mode 100644 lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.svg diff --git a/.travis.yml b/.travis.yml index e2bf8cab0590..77350b892738 100644 --- a/.travis.yml +++ b/.travis.yml @@ -76,6 +76,7 @@ before_install: install: - ccache -s + - git describe # Upgrade pip and setuptools. Mock has issues with the default version of # setuptools - | diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index b66809c1d491..f0841fa5ad1c 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -371,9 +371,20 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, # this is to work around spurious warnings coming # out of masked arrays. with np.errstate(invalid='ignore'): - rgba[..., 1] = A < 0 # under data - rgba[..., 2] = A > 1 # over data - rgba[..., 3] = ~A.mask # bad data + rgba[..., 1] = np.where(A < 0, np.nan, 1) # under data + rgba[..., 2] = np.where(A > 1, np.nan, 1) # over data + # Have to invert mask, Agg knows what alpha means + # so if you put this in as 0 for 'good' points, they + # all get zeroed out + rgba[..., 3] = 1 + if A.mask.shape == A.shape: + # this is the case of a nontrivial mask + mask = np.where(A.mask, np.nan, 1) + else: + # this is the case that the mask is a + # numpy.bool_ of False + mask = A.mask + # ~A.mask # masked data A = rgba output = np.zeros((out_height, out_width, 4), dtype=A.dtype) @@ -414,12 +425,37 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, # Convert back to a masked greyscale array so # colormapping works correctly hid_output = output + # any pixel where the a masked pixel is included + # in the kernel (pulling this down from 1) needs to + # be masked in the output + if len(mask.shape) == 2: + out_mask = np.empty((out_height, out_width), + dtype=mask.dtype) + _image.resample(mask, out_mask, t, + _interpd_[self.get_interpolation()], + True, 1, + self.get_filternorm() or 0.0, + self.get_filterrad() or 0.0) + out_mask = np.isnan(out_mask) + else: + out_mask = mask + # we need to mask both pixels which came in as masked + # 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) output = np.ma.masked_array( - hid_output[..., 0], hid_output[..., 3] < 0.5) - # relabel under data - output[hid_output[..., 1] > .5] = -1 + hid_output[..., 0], + out_mask) + # 'unshare' the mask array to + # needed to suppress numpy warning + del out_mask + invalid_mask = ~output.mask * ~np.isnan(output.data) + # relabel under data. If any of the input data for + # the pixel has input out of the norm bounds, + output[np.isnan(hid_output[..., 1]) * invalid_mask] = -1 # relabel over data - output[hid_output[..., 2] > .5] = 2 + output[np.isnan(hid_output[..., 2]) * invalid_mask] = 2 output = self.to_rgba(output, bytes=True, norm=False) diff --git a/lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.pdf b/lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ea5a6c877fdaa6310383e6af8a69b7158df1196f GIT binary patch literal 27055 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.png b/lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.png new file mode 100644 index 0000000000000000000000000000000000000000..07fba85d3c2de34255b5dbbf1868f153a672cc8b GIT binary patch literal 19273 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 Y1r<@zopr0Nk!bKmY&$ literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.svg b/lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.svg new file mode 100644 index 000000000000..af53f58c3ab5 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_image/imshow_masked_interpolation.svg @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/baseline_images/test_image/mask_image_over_under.png b/lib/matplotlib/tests/baseline_images/test_image/mask_image_over_under.png index 6433cd355e856e6088b81963ba75a57f209482a3..447494239a0f304a0d6cb70db391531f451e799b 100644 GIT binary patch delta 24625 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'), **kwargs) +@image_comparison(baseline_images=['imshow_masked_interpolation'], + remove_text=True, style='default') +def test_imshow_masked_interpolation(): + + cm = copy(plt.get_cmap('viridis')) + cm.set_over('r') + cm.set_under('b') + cm.set_bad('k') + + N = 20 + n = colors.Normalize(vmin=0, vmax=N*N-1) + + # data = np.random.random((N, N))*N*N + data = np.arange(N*N, dtype='float').reshape(N, N) + + data[5, 5] = -1 + + data[15, 5] = 1e5 + + # data[3, 3] = np.nan + + data[15, 15] = np.inf + + mask = np.zeros_like(data).astype('bool') + mask[5, 15] = True + + data = np.ma.masked_array(data, mask) + + fig, ax_grid = plt.subplots(3, 6) + for interp, ax in zip(sorted(mimage._interpd_), ax_grid.ravel()): + ax.set_title(interp) + ax.imshow(data, norm=n, cmap=cm, interpolation=interp) + ax.axis('off') + + @cleanup def test_imshow_no_warn_invalid(): with warnings.catch_warnings(record=True) as warns: