0

我正在尝试使用 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];

我使用 drawpoint 的原因是我想选择点,调整它们的位置而不失去缩放功能,并在完成后存储所有点。

如何修改代码以在一定数量的点上启用迭代?

任何帮助将非常感激

4

1 回答 1

0

我不知道是否可以创建这些对象的数组。我怀疑这是可能的,但我不知道语法应该是什么样子。您还可以使用元胞数组,如下所示:

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
于 2019-10-06T00:33:58.477 回答