Как я могу хранить несколько точечных объектов в массиве или структуре? - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь использовать точку рисования в Matlab для интерактивного захвата некоторых точек интереса на изображении.

Выходные данные аргумента имеют тип объекта images.roi.Point.

Как можноЯ сохраняю выбранные точки в массиве или структуре, так что я могу перебирать много точек вместо определения новой переменной для каждой точки?

Это мой код на данный момент, он функционален, однако я хочу бытьвозможность зацикливаться на определенном количестве точек вместо определения различных переменных вручную.

img = imread('test.jpg');
imshow(img)

p1 = drawpoint;
p2 = drawpoint;
p3 = drawpoint;
p4 = drawpoint;

disp('Press a key when selection is finalized!')
pause;

p = [p1.Position; p2.Position; p3.Position; p4.Position];

Причина, по которой я использую точку рисования, заключается в том, что я хочу выбрать точки, отрегулировать их положение, не теряя возможности масштабирования, и сохранить все точки после финализации.

Как изменитькод для включения итерации по определенному количеству точек?

Любая помощь будет высоко ценится

1 Ответ

0 голосов
/ 06 октября 2019

Я не знаю, возможно ли создать массив этих объектов. Я подозреваю, что это возможно, но я не знаю точно, как должен выглядеть синтаксис. Вы также можете использовать массив ячеек следующим образом:

N = 4; % number of points
pts = cell(N,1);
for ii = 1:N
   pts{ii} = drawpoint;
end
pause;
coords = zeros(N,2);
for ii = 1:N
   coords(ii,:) = pts{ii}.Position;
end
...