LoG Blob Detection

LoG blob detection
132 Downloads
Updated 29 Jun 2023

blob-detector

Blob detection by LoG filter. Detects features in 2D, 3D images. View blob-detector on File Exchange

Suitable for objects with user-estimated uniform diameter. now plus 3D version.

See pdf for more background.

blobdetect

Function to detects positions of bright/dark features in 2D images.

Usage

blobcoords=blobdetect(image,diameter)

Arguments

image greyscale image / 2D array.

diameter Diameter of expected objects (in pixels).

Optional keyword arguments

Filter select type of filter, from "LoG", "DoG", default "LoG". "DoG" not yet implemented 3D.

DarkBackground By default bright objects on dark background are expected, if the image instead shows dark objects on light background set this to false. Default true.

MedianFilter The median filter prepocessing step improves quality, default true.

QualityFilter Filter by (linearly rescaled) intensity, default 0.1.

OverlapFilter Eliminate circles overlapping by more than radius. default false. Warning: slow, O(n^2) in number of particles found.

KernelSize Size of LoG kernel matrix (gets rounded up to nearest odd number). Default auto-selected based on diameter.

GPU Attempt CUDA GPU acceleration. Default false. Useful for large 3D images.

Output

blobcoords Table of [x,y, Intensity] of blob centers.

blobdetect3D

Function to detect positions of bright/dark features in 3D images. Input arguments same as blobdetect.

blobcoords=blobdetect3D(image,diameter)

annotate_image, annotate_volume

Simple utility to inspect output, adds magenta circles to the image.

image_out=annotate_image(image, blobcoords, diameters)

This returns an RGB array - the image with magenta circles added - which can then be inspected using imshow. Alternatively, for immediate display as a figure, you could use matlab's viscircles.

For a rough inspection of 3D data and blob coordinate list as 2D image, call image_out=annotate_image(image, blobcoords, diameters, z_height) to return a 2D image that is a slice through the 3D data at z_height, with blobs marked by magenta circles that are slices through the detected spheres and out-of-plane spheres marked with points.

For 3D volumes

volume_out = annotate_volume(image, blobcoords, diameter)

annotates the 3D data with magenta spheres, returning a m x n x p x c 3-channel 3D image volume that can be inspected with sliceViewer(volume_out).
Warning: produces data 3x the size of the original volume.

Handling large and/or 3D images.

Matlab's native convolution conv2() and convn() is slow for larger kernels, i.e. when trying to detect larger blob diameters.

Try installing my matlabCUDAconvolution (to somewhere on matlabpath) and giving argument GPU=true to accelerate the convolution step. Requires a CUDA-compatible GPU.

For images that are too large for GPU memory, blobdetect/blobdetect3D can be applied in a tiled way, see example ``tiledBlobdetect.mlx.

Cite As

Jason Klebes (2024). LoG Blob Detection (https://github.com/jklebes/blob-detector/releases/tag/v1.1.0), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2022b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.1.0.0

See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v1.1.0

1.0.3.0

See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v1.0.3

1.0.1.0

See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v1.0.1

1.0.0.0

See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v1.0.0

0.1.1.0

See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v0.1.1

0.1.0.0

See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v0.1.0
See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v0.1.0

0.0.1

See release notes for this release on GitHub: https://github.com/jklebes/blob-detector/releases/tag/v0.0.1

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.