# coding: utf-8 # # Table of Contents #

1  Blurring a part of an image in Python
1.1  Blur all the image
1.2  Blur only an area of the image
1.3  Conclusion
# # Blurring a part of an image in Python # # This very short notebook shows how to open an image (eg a PNG image), and nicely blur a part of it. # In[1]: import numpy as np import skimage # In[2]: get_ipython().run_line_magic('load_ext', 'watermark') get_ipython().run_line_magic('watermark', '-v -m -a "Lilian Besson (Naereen)" -p numpy,skimage -g') # ## Blur all the image # Let's import one of the example image, and blur all of it using [`skimage.filters.gaussian`](http://scikit-image.org/docs/stable/api/skimage.filters.html#skimage.filters.gaussian). # In[9]: from skimage import data, io, filters image = data.astronaut() # In[10]: def imshow(image): io.imshow(image) io.show() # In[11]: imshow(image) # In[5]: from skimage.filters import gaussian # In[12]: filtered_img = gaussian(image, sigma=1, multichannel=True) imshow(filtered_img) # In[13]: filtered_img = gaussian(image, sigma=2, multichannel=True) imshow(filtered_img) # ## Blur only an area of the image # In[17]: image.shape # In[71]: 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 # In[72]: filtered_img = blur(image, 80, 180, 170, 270, sigma=1) imshow(filtered_img) # In[76]: filtered_img = blur(image, 80, 180, 170, 270, sigma=5) imshow(filtered_img) # In[73]: filtered_img = blur(image, 80, 180, 170, 270, sigma=10) imshow(filtered_img) # In[74]: filtered_img = blur(image, 80, 180, 170, 270, sigma=20) imshow(filtered_img) # ## Conclusion # # That's it.