徒手画的对象从图和脑袋复制到另一个图

6视图(30天)
你好,
我用matlab中的drawfreehand函数使用下面的命令来画一个roi图并将其保存在我的:
z = drawfreehand ();
保存(“roi.mat”,“z”);
所以现在,当我在命令窗口中输入z会徒手画的对象如下:
z =
徒手画的属性:
位置:[298×2双)
关闭:1
标签:
Multiclick: 0
颜色:[0 0.4470 - 0.7410)
父:(1×1轴]
可见:“上”
选择:0
现在我想复制这个徒手画的对象并将其显示在相同的另一个图不准确的位置。
它将声音如果我能移动它在新的图
你能请帮我解决这个问题吗?
最好的,
Nikan

接受的答案

图像分析
图像分析 2021年8月1日
编辑:图像分析 2021年8月1日
在其他程序中,使用负载()加载它,然后使用阴谋()来显示它
图(1);
rgbImage = imread (“peppers.png”);
imshow (rgbImage);
uiwait(对话框(画一个徒手roi的));
投资回报率= drawfreehand (“颜色”,“黄色”);
%保存它
保存(“roi.mat”,“投资回报”);
%作出新的图
图(2);
rgbImage = imread (“peppers.png”);
imshow (rgbImage);
%回忆ROI
s =负载(“roi.mat”)
freehandROI = s.roi.Position;
% %情节在第二图像。
% x = freehandROI (: 1);
% y = freehandROI (:, 2);
%等;
%的阴谋(x, y, y。——”,“线宽”2“MarkerSize”, 20);
%推迟;
uiwait(对话框(“调整徒手roi”));
投资回报率= drawfreehand (“位置”freehandROI,“颜色”,“黄色”);
5个评论
图像分析
图像分析 2021年8月3日
亚当,我知道,但是故意不开灯,这样如果有人跑,他们会看到它不连接,实现他们不得不这样做。我想我可以关闭,但是我想知道是一件好事,会发生什么?
总之,如何保持代码从爆破起?我将它的方法之一是有我的脚本或GUI打开一个新的、独立的图,然后把一个按钮说“接受”于是它将关闭新的图,回到原来的GUI或脚本。我认为有一些电话等(),uiwait(),或uiresume()或一些非常混乱和不直观,我不记得我的头顶。笨重的但它工作,我不知道任何更优雅,单窗口的方法。你呢?
我确实发现这段代码的指南,我可以弹出一个新的图和画一个椭圆在同一GUI:
% = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
%得到一个椭圆的面具。
函数rgbImage面具= GetManualMask(处理)
试一试
(行、列,numberOfColorChannels) = (rgbImage)大小;
掩码= true(行、列);%初始化所以我们会有一些情况下会引发一个错误。
hFig =图;
imshow (rgbImage);
hFig。WindowState =“最大化”;
h = uicontrol (“位置”(20 620 200 40),“字符串”,“接受”,“字形大小”12“FontWeight”,“大胆”,
“回调”,“uiresume (gcbf)”);
userPrompt = sprintf (请画出一个椭圆。\ nClick完成后接受按钮左边。”);
msgboxw (userPrompt);
标题= sprintf (请画出一个椭圆。完成后关闭窗口。”);
标题(标题,“字形大小”14);
%的用户交互式地拖出椭圆和调整它的大小和位置。
投资回报率= drawellipse ();
xy = roi.Vertices;
%的其他东西需要让用户调整椭圆和回到xy坐标。
%的侦听器更新xy基地工作区当用户更改椭圆。
addlistener (roi,“ROIMoved”@ (src evt) assignin (“基地”,“xy”src.Vertices));
uiwait (hFig);
xy = evalin (“基地”,“xy”);%的xy坐标系的基本工作空间。
掩码= poly2mask (xy (: 1), xy(:, 2),行,列);
imshow(面具);
drawnow;
关闭(hFig);
%如果你这里发生了一些错误。
errorMessage = GetErrorMessage(我);%得到错误消息调用回溯和文件的日期。
WarnUser (errorMessage);%弹出错误消息显示用户它是什么。还打印命令窗口或控制台窗口(如果程序是一个可执行的)。
结束
返回;% GetManualMask

登录置评。

答案(1)

亚当Danz
亚当Danz 2021年8月1日
编辑:亚当Danz 2021年8月1日
您可以使用 copyobj (z, ax) 在哪里 z 是一个 现有的 徒手画的对象或徒手画的对象保存到文件和垫子 斧头 是新轴的句柄。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!