matlab - 如何将多个点对象存储在数组或结构中?
问题描述
我正在尝试使用 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 的原因是我想选择点,调整它们的位置而不失去缩放功能,并在完成后存储所有点。
如何修改代码以在一定数量的点上启用迭代?
任何帮助将非常感激
解决方案
我不知道是否可以创建这些对象的数组。我怀疑这是可能的,但我不知道语法应该是什么样子。您还可以使用元胞数组,如下所示:
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
推荐阅读
- html - 如何将我的 JSON 文件导入 app.ts 以显示 app.html 中的选项?
- r - 测试字符串是否在字母表的 n 个位置
- python - 获取带有标签的推文 - Teepy
- c++ - 在 extern "C"{} 中声明一个使用向量的函数
- angular - 在角度服务中缓存休息请求
- node.js - 在 Ubuntu 上安装 Angular CLI 失败
- chronicle - 编年史如何增加处理器?
- ruby-on-rails - Rails 从其他两个哈希创建哈希
- javascript - 设置和比较日期以检查信用卡有效性
- shell - CodeDeploy 超时错误和损坏的 EC2