Make a weight matrix sparce

2 views (last 30 days)
Orr Streicher
Orr Streicher on 29 Jan 2021
Edited: Matt J on 30 Jan 2021
Hi,
I have an image in size of 256x256.
I would like to implement an algorithem that use graph theory on this image so i want to calculate the weights matrix: for 2 pixcels x,y i want to calculate D(x,y)= exp(-|x-y|/sigma)
By theory, the matrix D should be in size of (256^2)x(256^2), but i understaned that this is not practical.
I read a paper said that in order to make the weight matrix sparse, it is possible to truncate the matrix to the 50 nearest neighbors.
Does anyone know how can i do it in matlab?
Or maybe another way to make the weight matrix sparse?
thanks,
Or
  2 Comments
Matt J
Matt J on 29 Jan 2021
Edited: Matt J on 30 Jan 2021
Do you really need D, or do you simply need an algorithm that computes D*I(:) for a given image I? The latter is just a convolution operation, and can be done efficiently with FFTs.
Matt J
Matt J on 30 Jan 2021
Edited: Matt J on 30 Jan 2021
Also, do you absolutely have to define D as D(x,y)= exp(-|x-y|/sigma) ? If you instead use a Mahalanobis distance, D(x,y)= exp(-|x-y|^2/sigma^2), then D can be expressed as a Kronecker product
D=kron( exp(-(xi-yi)^2/sigma) , exp(-(xj-yj)^2/sigma) )
which has a number of simplifying properties.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!