Reality is merely an illusion, albeit a very persistent one.

Application of a Laplacian Blob Detector

2 October 2017
Download as .zip Download as .tar .gz View on GitHub

by Saleem Ahmed

tags: hw cvip vision image-processing blob-detector deep-learning matlab

The goal of the assignment is to implement a Laplacian blob detector: a generalized Laplacian of Gaussian (LoG) (gLoG) filter for detecting general elliptical blob structures in images. The gLoG filter can not only accurately locate the blob centers but also estimate the scales, shapes, and orientations of the detected blobs. These functions can be realized by generalizing the common 3-D LoG scale-space blob detector to a 5-D gLoG scale-space one, where the five parameters are image-domain coordinates (x, y), scales (σ x , σ y ), and orientation (θ), respectively.

Algorithm outline

  1. Generate a Laplacian of Gaussian filter.

  2. Build a Laplacian scale space, starting with some initial scale and going for n iterations:

    • Filter image with scale-normalized Laplacian at current scale.

    • Save square of Laplacian response for current level of scale space.

    • Increase scale by a factor k.

  3. Perform nonmaximum suppression in scale space.

  4. Display resulting circles at their characteristic scales.

Test images

In the data directory of, there are four images to test your code, and sample output images for your reference. Keep in mind, though, that your output may look different depending on your threshold, range of scales, and other implementation details. In addition to the images provided, also run your code on at least four images of your own choosing.

∗ Credit to Svetlana Lazebnik for this assignment.


Detailed instructions

% h,w - dimensions of image,

% n - number of levels in scale space

scale_space = zeros(h,w,n);

Then scale space(:,:,i) would give you the ith level of the scale space. Alternatively, if you are storing different levels of the scale pyramid at different resolutions, you may want to use a cell array, where each “slot” “slot” can accommodate a different data type or a matrix of different dimensions. Here is how you would use it: scale_space = cell(n,1); %creates a cell array with n ''slots'' scale_space{i} = my_matrix; % store a matrix at level i

Hint: Don’t forget that there is a multiplication factor that relates the scale at which a region is detected to the radius of the circle that most closely “approximates” the region.


For extra credit

Helpful resources

Grading Checklist

You must turn in both your report and your code. Your report will be graded based on the following items:

  1. The output of your circle detector on all the images (four provided and four of your own choice), together with a comparison of running times for both the “efficient” and the “inefficient” implementation. (The comparison is graded, not the running times.)
  2. An explanation of any “interesting” implementation choices that you made.
  3. An explanation of parameter values you have tried and which ones you found to be optimal.
  4. Discussion and results of any extensions or bonus features you have implemented.


Instructions for Submitting the Assignment

Your submission should consist of the following:

Multiple attempts will be allowed but by default, only your last submission will be graded. We reserve the right to take off points for not following directions.

Late policy: You lose 50% of the points for every day the assignment is late. (Any genuine emergency situations will be handled on an individual basis.) Academic integrity: Feel free to discuss the assignment with each other in general terms, and to search the Web for general guidance (not for complete solutions). Coding should be done individually. If you make substantial use of some code snippets or information from outside sources, be sure to acknowledge the sources in your report.


  1. Chris Harris and Mike Stephens. A combined corner and edge detector. In Alvey Vision Conference, volume 15, pages 10–5244. Manchester, UK, 1988.

  2. Tony Lindeberg. Feature detection with automatic scale selection. International Journal of Computer Vision, 30(2):79–116, 1998.

  3. David G Lowe. Distinctive image features from scale-invariant keypoints. International Journal of Computer Vision, 60(2):91–110, 2004.

  4. Krystian Mikolajczyk and Cordelia Schmid. Scale & affine invariant interest point detectors. International Journal of Computer Vision, 60(1):63–86, 2004