From c460dbcefa18d829477a76532a36cda744654baf Mon Sep 17 00:00:00 2001 From: Jody Klymak Date: Tue, 20 Oct 2020 19:36:10 -0700 Subject: [PATCH] ENH: allow image to interpolate post RGBA Co-authored-by: Elliott Sales de Andrade --- .../image_interpolation_rgbastage.rst | 21 +++++ .../image_antialiasing.py | 79 +++++++++++++----- lib/matplotlib/artist.py | 1 + lib/matplotlib/axes/_axes.py | 19 +++-- lib/matplotlib/image.py | 33 +++++++- lib/matplotlib/pyplot.py | 5 +- .../test_image/rgba_antialias.png | Bin 0 -> 109660 bytes lib/matplotlib/tests/test_image.py | 55 ++++++++++++ 8 files changed, 183 insertions(+), 30 deletions(-) create mode 100644 doc/users/next_whats_new/image_interpolation_rgbastage.rst create mode 100644 lib/matplotlib/tests/baseline_images/test_image/rgba_antialias.png diff --git a/doc/users/next_whats_new/image_interpolation_rgbastage.rst b/doc/users/next_whats_new/image_interpolation_rgbastage.rst new file mode 100644 index 000000000000..5b95f368e382 --- /dev/null +++ b/doc/users/next_whats_new/image_interpolation_rgbastage.rst @@ -0,0 +1,21 @@ +Image interpolation now possible at RGBA stage +---------------------------------------------- + +Images in Matplotlib created via `~.axes.Axes.imshow` are resampled to match +the resolution of the current canvas. It is useful to apply an anto-aliasing +filter when downsampling to reduce Moire effects. By default, interpolation +is done on the data, a norm applied, and then the colormapping performed. + +However, it is often desireable for the anti-aliasing interpolation to happen +in RGBA space, where the colors are interpolated rather than the data. This +usually leads to colors outside the colormap, but visually blends adjacent +colors, and is what browsers and other image processing software does. + +A new keyword argument *interpolation_stage* is provided for +`~.axes.Axes.imshow` to set the stage at which the anti-aliasing interpolation +happens. The default is the current behaviour of "data", with the alternative +being "rgba" for the newly-available behavior. + +For more details see the discussion of the new keyword argument in +:doc:`/gallery/images_contours_and_fields/image_antialiasing`. + diff --git a/examples/images_contours_and_fields/image_antialiasing.py b/examples/images_contours_and_fields/image_antialiasing.py index 3a6774c5e7e4..cb12bc3d9319 100644 --- a/examples/images_contours_and_fields/image_antialiasing.py +++ b/examples/images_contours_and_fields/image_antialiasing.py @@ -5,12 +5,21 @@ Images are represented by discrete pixels, either on the screen or in an image file. When data that makes up the image has a different resolution -than its representation on the screen we will see aliasing effects. +than its representation on the screen we will see aliasing effects. How +noticeable these are depends on how much down-sampling takes place in +the change of resolution (if any). -The default image interpolation in Matplotlib is 'antialiased'. This uses a -hanning interpolation for reduced aliasing in most situations. Only when there -is upsampling by a factor of 1, 2 or >=3 is 'nearest' neighbor interpolation -used. +When subsampling data, aliasing is reduced by smoothing first and then +subsampling the smoothed data. In Matplotlib, we can do that +smoothing before mapping the data to colors, or we can do the smoothing +on the RGB(A) data in the final image. The difference between these is +shown below, and controlled with the *interpolation_stage* keyword argument. + +The default image interpolation in Matplotlib is 'antialiased', and +it is applied to the data. This uses a +hanning interpolation on the data provided by the user for reduced aliasing +in most situations. Only when there is upsampling by a factor of 1, 2 or +>=3 is 'nearest' neighbor interpolation used. Other anti-aliasing filters can be specified in `.Axes.imshow` using the *interpolation* keyword argument. @@ -20,26 +29,55 @@ import matplotlib.pyplot as plt ############################################################################### -# First we generate a 500x500 px image with varying frequency content: -x = np.arange(500) / 500 - 0.5 -y = np.arange(500) / 500 - 0.5 +# First we generate a 450x450 pixel image with varying frequency content: +N = 450 +x = np.arange(N) / N - 0.5 +y = np.arange(N) / N - 0.5 +aa = np.ones((N, N)) +aa[::2, :] = -1 X, Y = np.meshgrid(x, y) R = np.sqrt(X**2 + Y**2) -f0 = 10 -k = 250 +f0 = 5 +k = 100 a = np.sin(np.pi * 2 * (f0 * R + k * R**2 / 2)) - - +# make the left hand side of this +a[:int(N / 2), :][R[:int(N / 2), :] < 0.4] = -1 +a[:int(N / 2), :][R[:int(N / 2), :] < 0.3] = 1 +aa[:, int(N / 3):] = a[:, int(N / 3):] +a = aa ############################################################################### -# The following images are subsampled from 500 data pixels to 303 rendered -# pixels. The Moire patterns in the 'nearest' interpolation are caused by the -# high-frequency data being subsampled. The 'antialiased' image +# The following images are subsampled from 450 data pixels to either +# 125 pixels or 250 pixels (depending on your display). +# The Moire patterns in the 'nearest' interpolation are caused by the +# high-frequency data being subsampled. The 'antialiased' imaged # still has some Moire patterns as well, but they are greatly reduced. -fig, axs = plt.subplots(1, 2, figsize=(7, 4), constrained_layout=True) -for ax, interp in zip(axs, ['nearest', 'antialiased']): - ax.imshow(a, interpolation=interp, cmap='gray') - ax.set_title(f"interpolation='{interp}'") +# +# There are substantial differences between the 'data' interpolation and +# the 'rgba' interpolation. The alternating bands of red and blue on the +# left third of the image are subsampled. By interpolating in 'data' space +# (the default) the antialiasing filter makes the stripes close to white, +# because the average of -1 and +1 is zero, and zero is white in this +# colormap. +# +# Conversely, when the anti-aliasing occurs in 'rgba' space, the red and +# blue are combined visually to make purple. This behaviour is more like a +# typical image processing package, but note that purple is not in the +# original colormap, so it is no longer possible to invert individual +# pixels back to their data value. + +fig, axs = plt.subplots(2, 2, figsize=(5, 6), constrained_layout=True) +axs[0, 0].imshow(a, interpolation='nearest', cmap='RdBu_r') +axs[0, 0].set_xlim(100, 200) +axs[0, 0].set_ylim(275, 175) +axs[0, 0].set_title('Zoom') + +for ax, interp, space in zip(axs.flat[1:], + ['nearest', 'antialiased', 'antialiased'], + ['data', 'data', 'rgba']): + ax.imshow(a, interpolation=interp, interpolation_stage=space, + cmap='RdBu_r') + ax.set_title(f"interpolation='{interp}'\nspace='{space}'") plt.show() ############################################################################### @@ -63,7 +101,7 @@ plt.show() ############################################################################### -# Apart from the default 'hanning' antialiasing `~.Axes.imshow` supports a +# Apart from the default 'hanning' antialiasing, `~.Axes.imshow` supports a # number of different interpolation algorithms, which may work better or # worse depending on the pattern. fig, axs = plt.subplots(1, 2, figsize=(7, 4), constrained_layout=True) @@ -72,7 +110,6 @@ ax.set_title(f"interpolation='{interp}'") plt.show() - ############################################################################# # # .. admonition:: References diff --git a/lib/matplotlib/artist.py b/lib/matplotlib/artist.py index c6a371c684bf..152c0ea33ff5 100644 --- a/lib/matplotlib/artist.py +++ b/lib/matplotlib/artist.py @@ -1450,6 +1450,7 @@ def aliased_name(self, s): 'matplotlib.image._ImageBase.set_filternorm', 'matplotlib.image._ImageBase.set_filterrad', 'matplotlib.image._ImageBase.set_interpolation', + 'matplotlib.image._ImageBase.set_interpolation_stage', 'matplotlib.image._ImageBase.set_resample', 'matplotlib.text._AnnotationBase.set_annotation_clip', } diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index ec7f3f75feb0..8ebf5583a95d 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -5289,8 +5289,9 @@ def fill_betweenx(self, y, x1, x2=0, where=None, @_api.make_keyword_only("3.5", "aspect") @_preprocess_data() def imshow(self, X, cmap=None, norm=None, aspect=None, - interpolation=None, alpha=None, vmin=None, vmax=None, - origin=None, extent=None, *, filternorm=True, filterrad=4.0, + interpolation=None, alpha=None, + vmin=None, vmax=None, origin=None, extent=None, *, + interpolation_stage=None, filternorm=True, filterrad=4.0, resample=None, url=None, **kwargs): """ Display data as an image, i.e., on a 2D regular raster. @@ -5382,6 +5383,12 @@ def imshow(self, X, cmap=None, norm=None, aspect=None, which can be set by *filterrad*. Additionally, the antigrain image resize filter is controlled by the parameter *filternorm*. + interpolation_stage : {'data', 'rgba'}, default: 'data' + If 'data', interpolation + is carried out on the data provided by the user. If 'rgba', the + interpolation is carried out after the colormapping has been + applied (visual interpolation). + alpha : float or array-like, optional The alpha blending value, between 0 (transparent) and 1 (opaque). If *alpha* is an array, the alpha blending values are applied pixel @@ -5482,9 +5489,11 @@ def imshow(self, X, cmap=None, norm=None, aspect=None, if aspect is None: aspect = rcParams['image.aspect'] self.set_aspect(aspect) - im = mimage.AxesImage(self, cmap, norm, interpolation, origin, extent, - filternorm=filternorm, filterrad=filterrad, - resample=resample, **kwargs) + im = mimage.AxesImage(self, cmap, norm, interpolation, + origin, extent, filternorm=filternorm, + filterrad=filterrad, resample=resample, + interpolation_stage=interpolation_stage, + **kwargs) im.set_data(X) im.set_alpha(alpha) diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index b2c9c4b22f9b..ca5b7da5f808 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -238,6 +238,8 @@ def __init__(self, ax, filternorm=True, filterrad=4.0, resample=False, + *, + interpolation_stage=None, **kwargs ): martist.Artist.__init__(self) @@ -249,6 +251,7 @@ def __init__(self, ax, self.set_filternorm(filternorm) self.set_filterrad(filterrad) self.set_interpolation(interpolation) + self.set_interpolation_stage(interpolation_stage) self.set_resample(resample) self.axes = ax @@ -392,8 +395,7 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, if not unsampled: if not (A.ndim == 2 or A.ndim == 3 and A.shape[-1] in (3, 4)): raise ValueError(f"Invalid shape {A.shape} for image data") - - if A.ndim == 2: + if A.ndim == 2 and self._interpolation_stage != 'rgba': # if we are a 2D array, then we are running through the # norm + colormap transformation. However, in general the # input data is not going to match the size on the screen so we @@ -541,6 +543,9 @@ def _make_image(self, A, in_bbox, out_bbox, clip_bbox, magnification=1.0, ): output = self.norm(resampled_masked) else: + if A.ndim == 2: # _interpolation_stage == 'rgba' + self.norm.autoscale_None(A) + A = self.to_rgba(A) if A.shape[2] == 3: A = _rgb_to_rgba(A) alpha = self._get_scalar_alpha() @@ -773,6 +778,22 @@ def set_interpolation(self, s): self._interpolation = s self.stale = True + def set_interpolation_stage(self, s): + """ + Set when interpolation happens during the transform to RGBA. + + Parameters + ---------- + s : {'data', 'rgba'} or None + Whether to apply up/downsampling interpolation in data or rgba + space. + """ + if s is None: + s = "data" # placeholder for maybe having rcParam + _api.check_in_list(['data', 'rgba']) + self._interpolation_stage = s + self.stale = True + def can_composite(self): """Return whether the image can be composited with its neighbors.""" trans = self.get_transform() @@ -854,6 +875,11 @@ class AxesImage(_ImageBase): 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos', 'blackman'. + interpolation_stage : {'data', 'rgba'}, default: 'data' + If 'data', interpolation + is carried out on the data provided by the user. If 'rgba', the + interpolation is carried out after the colormapping has been + applied (visual interpolation). origin : {'upper', 'lower'}, default: :rc:`image.origin` Place the [0, 0] index of the array in the upper left or lower left corner of the axes. The convention 'upper' is typically used for @@ -890,6 +916,8 @@ def __init__(self, ax, filternorm=True, filterrad=4.0, resample=False, + *, + interpolation_stage=None, **kwargs ): @@ -904,6 +932,7 @@ def __init__(self, ax, filternorm=filternorm, filterrad=filterrad, resample=resample, + interpolation_stage=interpolation_stage, **kwargs ) diff --git a/lib/matplotlib/pyplot.py b/lib/matplotlib/pyplot.py index 28b14e0129f2..201255da848c 100644 --- a/lib/matplotlib/pyplot.py +++ b/lib/matplotlib/pyplot.py @@ -2864,12 +2864,13 @@ def hlines( def imshow( X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, *, - filternorm=True, filterrad=4.0, resample=None, url=None, - data=None, **kwargs): + interpolation_stage=None, filternorm=True, filterrad=4.0, + resample=None, url=None, data=None, **kwargs): __ret = gca().imshow( X, cmap=cmap, norm=norm, aspect=aspect, interpolation=interpolation, alpha=alpha, vmin=vmin, vmax=vmax, origin=origin, extent=extent, + interpolation_stage=interpolation_stage, filternorm=filternorm, filterrad=filterrad, resample=resample, url=url, **({"data": data} if data is not None else {}), **kwargs) diff --git a/lib/matplotlib/tests/baseline_images/test_image/rgba_antialias.png b/lib/matplotlib/tests/baseline_images/test_image/rgba_antialias.png new file mode 100644 index 0000000000000000000000000000000000000000..65476dc9a595a2f5a42aba92d1ae5546a44fb3b5 GIT binary patch literal 109660 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py index f78e082211d5..37dddd4e4706 100644 --- a/lib/matplotlib/tests/test_image.py +++ b/lib/matplotlib/tests/test_image.py @@ -1328,3 +1328,58 @@ def test_nonuniform_and_pcolor(): ax.set_axis_off() # NonUniformImage "leaks" out of extents, not PColorImage. ax.set(xlim=(0, 10)) + + +@image_comparison(["rgba_antialias.png"], style="mpl20", + remove_text=True) +def test_rgba_antialias(): + fig, axs = plt.subplots(2, 2, figsize=(3.5, 3.5), sharex=False, + sharey=False, constrained_layout=True) + N = 250 + aa = np.ones((N, N)) + aa[::2, :] = -1 + + x = np.arange(N) / N - 0.5 + y = np.arange(N) / N - 0.5 + + X, Y = np.meshgrid(x, y) + R = np.sqrt(X**2 + Y**2) + f0 = 10 + k = 75 + # aliased concentric circles + a = np.sin(np.pi * 2 * (f0 * R + k * R**2 / 2)) + + # stripes on lhs + a[:int(N/2), :][R[:int(N/2), :] < 0.4] = -1 + a[:int(N/2), :][R[:int(N/2), :] < 0.3] = 1 + aa[:, int(N/2):] = a[:, int(N/2):] + + # set some over/unders and NaNs + aa[20:50, 20:50] = np.NaN + aa[70:90, 70:90] = 1e6 + aa[70:90, 20:30] = -1e6 + aa[70:90, 195:215] = 1e6 + aa[20:30, 195:215] = -1e6 + + cmap = copy(plt.cm.RdBu_r) + cmap.set_over('yellow') + cmap.set_under('cyan') + + axs = axs.flatten() + # zoom in + axs[0].imshow(aa, interpolation='nearest', cmap=cmap, vmin=-1.2, vmax=1.2) + axs[0].set_xlim([N/2-25, N/2+25]) + axs[0].set_ylim([N/2+50, N/2-10]) + + # no anti-alias + axs[1].imshow(aa, interpolation='nearest', cmap=cmap, vmin=-1.2, vmax=1.2) + + # data antialias: Note no purples, and white in circle. Note + # that alternating red and blue stripes become white. + axs[2].imshow(aa, interpolation='antialiased', interpolation_stage='data', + cmap=cmap, vmin=-1.2, vmax=1.2) + + # rgba antialias: Note purples at boundary with circle. Note that + # alternating red and blue stripes become purple + axs[3].imshow(aa, interpolation='antialiased', interpolation_stage='rgba', + cmap=cmap, vmin=-1.2, vmax=1.2)