我需要做的是在 MATLAB 中使用预定义大量 ROI imfreehand
,然后将这些 ROI 放入脚本中。这真的并不难,因为我可以命名它们并继续绘制。但是我迷失的是如何在脚本中保存这些 ROI 而无需重新定义 ROIS。
基本上如何在脚本中保存 ROI?
我需要做的是在 MATLAB 中使用预定义大量 ROI imfreehand
,然后将这些 ROI 放入脚本中。这真的并不难,因为我可以命名它们并继续绘制。但是我迷失的是如何在脚本中保存这些 ROI 而无需重新定义 ROIS。
基本上如何在脚本中保存 ROI?
首先,您可以访问您绘制的任何线条的 x,y 坐标。当您调用 时imfreehand
,保存它的句柄并使用它来访问您绘制的线条中的 x,y 数据。
hf = imfreehand;
% draw line, maybe insert pause here
hl = findobj(hf,'Type','line','Tag','top line');
x = get(hl,'XData');
y = get(hl,'YData');
然后您可以使用 `mat2str2 将变量保存为可以放入脚本的字符串:
>> x = 1:10;
>> sprintf('x = %s',mat2str(x))
ans =
x = [1 2 3 4 5 6 7 8 9 10]
只需将其复制到您的脚本中即可。
来自 MATLAB 的文档:
figure, imshow('pout.tif');
h = imfreehand;
position = wait(h); %This blocks until finished
你也可以
pos = getPosition(h) %gets the position
我认为您正在询问如何将每组位置存储在一个变量中。为此,单元阵列可能是最方便的东西。我希望这会有所帮助。