MATLAB中imfreehand工具的采样率?

MATLAB中imfreehand工具的采样率?,matlab,sampling,onmousemove,Matlab,Sampling,Onmousemove,我想用imfreehand在MATLAB绘图中手工绘制路径。出于分析目的,我需要imfreehand工具的采样率。它使用时间采样还是空间采样?简而言之,它既不使用时间采样,也不使用空间采样。它试图进行空间采样,但最终受到特定于系统的时间采样率的限制 更多信息 绑定到的任何回调仅在鼠标更改位置时执行 每当用户在图形窗口中移动指针时,就会执行此回调函数 在引擎盖下,imfreehand为WindowButtonMotionFcn设置自定义回调,因此受相同约束 对于imfreehand工具,这是有益的

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

简而言之,它既不使用时间采样,也不使用空间采样。它试图进行空间采样,但最终受到特定于系统的时间采样率的限制

更多信息

绑定到的任何回调仅在鼠标更改位置时执行

每当用户在图形窗口中移动指针时,就会执行此回调函数

在引擎盖下,
imfreehand
WindowButtonMotionFcn
设置自定义回调,因此受相同约束

对于
imfreehand
工具,这是有益的,这样当鼠标不移动时,您就不会在同一位置记录多个点。这也意味着采样率是可变的

最快的采样率实际上取决于系统。例如,不能保证每次鼠标移动一个像素时都能获得一个样本,因为它受系统的速率限制。因此,如果您在图形上快速移动鼠标,则不会注册起点和终点位置之间的所有像素位置

如果您确实需要以特定的速率对鼠标位置进行采样,则最好使用


正如Suever解释的那样,两者都不是
imfreehand
被实现为一个事件触发的处理程序,在鼠标移动/下/上时调用,类似于其他语言中的UI框架

触发的速率取决于系统/程序的速度。您可以做的是指定触发事件的排队方式(请参阅
interruptable
BusyAction
属性)

%// Sampling rate in Hz
samplingRate = 30;

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

start(t);