Applying filters on an image
In this recipe, we apply filters on an image for various purposes: blurring, denoising, and edge detection.
How it works...
Let's import the packages:
>>> import numpy as np import matplotlib.pyplot as plt import skimage import skimage.color as skic import skimage.filters as skif import skimage.data as skid import skimage.util as sku %matplotlib inline
We create a function that displays a grayscale image:
>>> def show(img): fig, ax = plt.subplots(1, 1, figsize=(8, 8)) ax.imshow(img, cmap=plt.cm.gray) ax.set_axis_off() plt.show()
Now, we load the Astronaut image (bundled in scikit-image). We convert it to a grayscale image with the
rgb2gray()
function:>>> img = skic.rgb2gray(skid.astronaut()) >>> show(img)
Let's apply a blurring Gaussian filter to the image:
>>> show(skif.gaussian(img, 5.))
We now apply a Sobel filter that enhances the edges in the image:
>>>...