Detecting edges

Edge detection is another popular image processing technique (http://en.wikipedia.org/wiki/Edge_detection ). scikits-image has a Canny filter implementation, based on the standard deviation of the Gaussian distribution, which can perform edge detection out of the box. In addition to the image data as a 2D array, this filter accepts the following parameters:

  • Standard deviation of the Gaussian distribution
  • Lower bound threshold
  • Upper bound threshold

How to do it...

We will use the same image as in the previous recipe. The code is almost the same. You should pay extra attention to the one line where we call the Canny filter function:

from sklearn.datasets import load_sample_images 
from matplotlib.pyplot import imshow, show, axis
import numpy
import skimage.filter

dataset = load_sample_images()
img = dataset.images[0] 
edges = skimage.filter.canny(img[..., 0], 2, 0.3, 0.2)
axis('off')
imshow(edges)
show()

The code produces an image of the edges within the original picture, as shown in the following screenshot:

How to do it...
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset