MATLAB 中的多重内联和等待

Multiple imline and wait in MATLAB

我想弄清楚 imline(Image Processing Toolbox) 在 MATLAB 2017a 中如何使用 wait 命令工作。 我创建了一个简单的例子。该代码有效,但根据用户操作,它会失败。

我想使用 imline 追踪两条线。使用 wait 命令,我可以在恢复程序之前更改行位置。 跟踪第一个后,我双击以确认位置,然后通过右键单击显示菜单并删除跟踪。 再次使用 imline,我跟踪了一个新行,但出现错误。 (imline 子函数中的句柄错误)

这是我的代码。

ha = axes;
hl = imline( ha );
wait( hl );
hl2 = imline( ha );
wait( hl2 );

第二次调用imline应该不会对第一次有任何影响。 imline 有问题吗?

N.B : 如果我不双击确认位置,它按预期工作。

正如 OP 在评论中所写,只有在他开始绘制第二行后删除第一行时才会出现错误(即光标再次设置为 +) .

此错误与 wait 命令无关。即使使用以下代码,也会出现错误:

ha = axes;
hl = imline(ha);
% try to delete the first line before drawing the second
hl2 = imline(ha);

因此用户不能在画另一条线时删除一条线(即当光标设置为+)。

但是,由于用户可以在创建线条后对其进行编辑,因此实际上并不需要此功能。用户可以绘制双线,然后根据需要进行编辑。

如果你想让用户在画新线之前能够删除线,那么你可以添加一个wait,但是用户可以删除第一线,只要他没有确认(with双击它)。