MATLAB中imfreehand工具的采样率是多少?

3

我想使用imfreehand在MATLAB图中手绘路径。出于分析目的,我需要imfreehand工具的采样率。它使用时间采样还是空间采样?

2个回答

3
简短的回答是,它既不进行时间采样也不进行空间采样。它试图进行空间采样,但最终受到系统特定的时间采样率的限制。
更多信息:
WindowButtonMotionFcn of a figure 绑定的任何回调函数,仅在鼠标改变位置时执行。
这个回调函数在用户在图形窗口内移动指针时执行。
在幕后,imfreehandWindowButtonMotionFcn 设置了自定义回调,因此受到相同的限制。
对于 imfreehand 工具,这是有益的,这样您就不会在鼠标不移动时记录多个相同位置的点。但这也意味着采样率是可变的。
最快的采样率取决于系统。例如,当鼠标移动一个像素时,并不能保证每次都能得到一个样本,因为它受系统速率限制。因此,如果您在图形上快速移动鼠标,则起始位置和结束位置之间的所有像素位置都不会被注册。
如果您确实需要以特定速率对鼠标位置进行采样,则最好使用timer对象
%// Sampling rate in Hz
samplingRate = 30;

t = timer('ExecutionMode', 'FixedRate', ...
          'Period', 1/samplingRate, ...
          'TimerFcn', @(s,e)disp(get(gcf, 'CurrentPoint')));

start(t);

1
作为Suever解释的,imfreehand被实现为一个事件触发的处理程序,在鼠标移动/按下/释放时调用,类似于其他语言中的UI框架。它被触发的速率取决于系统/程序可以pump messages的速度。您可以指定如何将触发的事件排队(请参见InterruptibleBusyAction属性)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接