Как бы вы эффективно рассчитали матрицу смежности изображения в matlab? - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь преобразовать изображение в график, получив матрицу смежности в matlab, используя следующий пример кода:

im = im2single(imread('cameraman.tif')); 
% It is safe to assume that I need such a small adjacency matrix.
% therefore I resize the image below. 
im = imresize(im,[16 16]);

[rows, cols, bands] = size(im);
imr = reshape(im, rows*cols, bands);
adj_matrix = zeros(rows*cols, rows*cols);
for ind = 1:rows*cols
    dist = sum((imr - imr(ind,:)).^2,2);
    adj_matrix(ind,:) = dist;
end

Хотя код быстр для отдельного изображения, я хочу масштабировать его до больших партий и запустить его на GPU. Так что моя цель в два раза:

  1. Есть ли способ запустить это без цикла for?

  2. Есть ли способ запустить это для партии, т. Е. Тензор [W x H x Num_of_Images]

Большое спасибо!

...