Jupyter Snippet CB2nd 02_filters
Jupyter Snippet CB2nd 02_filters
11.2. Applying filters on an image
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
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()
img = skic.rgb2gray(skid.astronaut())
show(img)
show(skif.gaussian(img, 5.))
sobimg = skif.sobel(img)
show(sobimg)
from ipywidgets import widgets
@widgets.interact(x=(0.01, .2, .005))
def edge(x):
show(sobimg < x)
img = skimage.img_as_float(skid.astronaut())
# We take a portion of the image to show the details.
img = img[50:200, 150:300]
# We add Gaussian noise.
img_n = sku.random_noise(img)
show(img_n)
img_r = skimage.restoration.denoise_tv_bregman(
img_n, 5.)
fig, (ax1, ax2, ax3) = plt.subplots(
1, 3, figsize=(12, 8))
ax1.imshow(img_n)
ax1.set_title('With noise')
ax1.set_axis_off()
ax2.imshow(img_r)
ax2.set_title('Denoised')
ax2.set_axis_off()
ax3.imshow(img)
ax3.set_title('Original')
ax3.set_axis_off()