【问题标题】:Sampling Rate of imfreehand tool in MATLAB?MATLAB中imfreehand工具的采样率?
【发布时间】:2016-07-31 00:51:52
【问题描述】:

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

【问题讨论】:

    标签: matlab sampling onmousemove


    【解决方案1】:

    简短的回答是,它不进行时间或空间采样。它尝试进行空间采样,但最终受限于系统特定的时间采样率。

    更多信息

    任何绑定到WindowButtonMotionFcn of a figure 的回调在鼠标改变位置时执行。

    只要用户在图形窗口内移动指针,就会执行此回调函数。

    在后台,imfreehandWindowButtonMotionFcn 设置了一个自定义回调,因此受到相同的约束。

    对于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 的速度。您可以指定触发事件如何排队(请参阅InterruptibleBusyAction 属性)。

      【讨论】:

        猜你喜欢
        • 2017-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-13
        • 2013-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多