This very short notebook shows how to open an image (eg a PNG image), and nicely blur a part of it.
import numpy as np
import skimage
%load_ext watermark
%watermark -v -m -a "Lilian Besson (Naereen)" -p numpy,skimage -g
Let's import one of the example image, and blur all of it using skimage.filters.gaussian
.
from skimage import data, io, filters
image = data.astronaut()
def imshow(image):
io.imshow(image)
io.show()
imshow(image)
from skimage.filters import gaussian
filtered_img = gaussian(image, sigma=1, multichannel=True)
imshow(filtered_img)
filtered_img = gaussian(image, sigma=2, multichannel=True)
imshow(filtered_img)
image.shape
def blur(image, x0, x1, y0, y1, sigma=1, imshowall=False):
x0, x1 = min(x0, x1), max(x0, x1)
y0, y1 = min(y0, y1), max(y0, y1)
im = image.copy()
sub_im = im[x0:x1,y0:y1].copy()
if imshowall: imshow(sub_im)
blur_sub_im = gaussian(sub_im, sigma=sigma)
if imshowall: imshow(blur_sub_im)
blur_sub_im = np.round(255 * blur_sub_im)
im[x0:x1,y0:y1] = blur_sub_im
return im
filtered_img = blur(image, 80, 180, 170, 270, sigma=1)
imshow(filtered_img)
filtered_img = blur(image, 80, 180, 170, 270, sigma=5)
imshow(filtered_img)
filtered_img = blur(image, 80, 180, 170, 270, sigma=10)
imshow(filtered_img)
filtered_img = blur(image, 80, 180, 170, 270, sigma=20)
imshow(filtered_img)
That's it.