diff --git a/doc/examples/plot_harris.py b/doc/examples/plot_harris.py index 258925ed..6cb02ba1 100644 --- a/doc/examples/plot_harris.py +++ b/doc/examples/plot_harris.py @@ -6,11 +6,12 @@ Harris Corner detector The Harris corner filter detects interest points using edge detection in many direction. """ + from matplotlib import pyplot as plt from matplotlib import cm from skimage import data -from skimage.filter import harris +from skimage.filter import harris_corner_detector def plot_harris_points(image, filtered_coords): @@ -26,5 +27,5 @@ def plot_harris_points(image, filtered_coords): im = data.lena().astype(float) -filtered_coords = harris.harris_corner_detector(im, 6) +filtered_coords = harris_corner_detector(im, 6) plot_harris_points(im, filtered_coords) diff --git a/skimage/filter/harris.py b/skimage/filter/harris.py index 53b58b01..b5abe7a3 100644 --- a/skimage/filter/harris.py +++ b/skimage/filter/harris.py @@ -1,6 +1,7 @@ # # Harris detector # +# Inspired from Solem's implementation # http://www.janeriksolem.net/2009/01/harris-corner-detector-in-python.html import numpy as np @@ -56,7 +57,7 @@ def harris_corner_detector(image, min_distance=10, threshold=0.1, eps=1e-6): params ------- - harrisim: ndarray + harrisim: ndarray of floats min_distance: int, optional, default: 10 minimum number of pixels separating corners and image boundary diff --git a/skimage/filter/tests/test_harris.py b/skimage/filter/tests/test_harris.py new file mode 100644 index 00000000..19d8cd3b --- /dev/null +++ b/skimage/filter/tests/test_harris.py @@ -0,0 +1,23 @@ +import numpy as np + +import unittest + +from skimage.filter import harris_corner_detector + + +class TestHarris(unittest.TestCase): + + def test_square_image(self): + im = np.zeros((50, 50)).astype(float) + im[:25, :25] = 1. + results = harris_corner_detector(im) + self.assertTrue(results.any()) + self.assertTrue(len(results) == 1) + + def test_noisy_square_image(self): + im = np.zeros((50, 50)).astype(float) + im[:25, :25] = 1. + im = im + np.random.uniform(size=im.shape) * .5 + results = harris_corner_detector(im) + assert results.any() + assert len(results) == 1