Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 在脚本中保存徒手ROI_Matlab_Image Processing_Roi - Fatal编程技术网

Matlab 在脚本中保存徒手ROI

Matlab 在脚本中保存徒手ROI,matlab,image-processing,roi,Matlab,Image Processing,Roi,我需要做的是使用imfreehand在MATLAB中预定义大量ROI,然后将这些ROI放入脚本中。这真的不难,因为我可以命名它们,然后继续画画。但我迷茫的是如何在脚本中保存这些ROI,而不必重新定义ROI 基本上如何在脚本中保存ROI?首先,您可以访问绘制的任何线条的x、y坐标。调用imfreehand时,保存其句柄并使用它访问所绘制线条中的x、y数据 hf = imfreehand; % draw line, maybe insert pause here hl = findobj(hf,'T

我需要做的是使用
imfreehand
在MATLAB中预定义大量ROI,然后将这些ROI放入脚本中。这真的不难,因为我可以命名它们,然后继续画画。但我迷茫的是如何在脚本中保存这些ROI,而不必重新定义ROI


基本上如何在脚本中保存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

我想你是在问如何将每组位置存储在一个变量中。为此,单元阵列可能是最方便的方法。我希望这会有所帮助。

这让我可以取出x和y数据,但有没有一种简单的方法可以将其放入脚本文件中?我不希望在脚本中使用imfreehand,因为我不希望每次运行程序时都必须绘制50个ROI。这解释得好一点吗?