MATLAB中imfreehand工具的采样率?
Posted
技术标签:
【中文标题】MATLAB中imfreehand工具的采样率?【英文标题】:Sampling Rate of imfreehand tool in MATLAB? 【发布时间】:2016-07-31 00:51:52 【问题描述】:我想使用imfreehand
在 MATLAB Plot 中手绘路径。出于分析目的,我需要imfreehand
工具的采样率。它使用时间采样还是空间采样?
【问题讨论】:
【参考方案1】:简短的回答是,它不进行时间或空间采样。它尝试进行空间采样,但最终受限于系统特定的时间采样率。
更多信息
任何绑定到WindowButtonMotionFcn
of a figure 的回调仅在鼠标改变位置时执行。
只要用户在图形窗口内移动指针,就会执行此回调函数。
在后台,imfreehand
为WindowButtonMotionFcn
设置了一个自定义回调,因此受到相同的约束。
对于imfreehand
工具,这是有益的,这样您就不会在鼠标不移动时在同一位置记录多个点。这也意味着,采样率是可变的。
最快采样率实际上取决于系统。您不能保证(例如)每次鼠标移动一个像素时都能获得样本,因为它受系统速率限制。因此,如果您在图形上快速移动鼠标,则不会注册开始位置和结束位置之间的所有像素位置。
如果您确实需要以特定速率对鼠标位置进行采样,最好使用timer
object。
%// Sampling rate in Hz
samplingRate = 30;
t = timer('ExecutionMode', 'FixedRate', ...
'Period', 1/samplingRate, ...
'TimerFcn', @(s,e)disp(get(gcf, 'CurrentPoint')));
start(t);
【讨论】:
【参考方案2】:正如 Suever 解释的那样,两者都不是。 imfreehand
实现为在鼠标移动/向下/向上调用的事件触发处理程序,类似于其他语言中的 UI 框架。
触发的速度取决于系统/程序pump messages 的速度。您可以指定触发事件如何排队(请参阅Interruptible
和BusyAction
属性)。
【讨论】:
以上是关于MATLAB中imfreehand工具的采样率?的主要内容,如果未能解决你的问题,请参考以下文章