File Exchange

image thumbnail

Diffusion Distance

version 1.0.0.0 (1.71 KB) by Matthew Foster
Calculate the diffusion distance between histograms

2 Downloads

Updated 07 May 2008

View License

DIFFUSION_DISTANCE calculate the diffusion distance between matrices
dist = diffusion_distance(im1, im2, [sig, dim], threshold, pad_type])
[dist, iter] = diffusion_distance(im1, im2) compute the diffusion distance
between im1 and im2 (histograms).

Optionally returns the number of iterations. This number will be limited by
the size of the histograms, and the threshold value, which can be set
manually, or will take the value 1e-4.

The padding method used by the filtering stages can be set using the 4th
argument, and defaults to circular. For available options, see help imfilter.

Reference:
Diffusion Distance for Histogram Comparison
Ling and Okada, Proc. CVPR, 2006

Example:
% Calculate the diffusion distance between two
% matrices of random integers.
a = round(10.*rand(10));
b = round(10.*rand(10));
dist = diffusion_distance(a, b);

Cite As

Matthew Foster (2020). Diffusion Distance (https://www.mathworks.com/matlabcentral/fileexchange/19839-diffusion-distance), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)

WurmD

the check "all(size(dist) >= size(kernel))"
prevents the comparison of vectors.

To be able to compare vectors with this distance, i've changed it to:
"~isscalar(dist)"

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