【问题标题】:Matlab KeyPressFcn with zooming具有缩放功能的 Matlab KeyPressFcn
【发布时间】:2015-01-22 20:47:13
【问题描述】:

基本上我只想使用 getpts 函数在图像上获取一些点坐标。这个想法是使用缩放(在面板上)在图像上找到目标区域,然后在按键上调用 getpts 并指定一个点。 我已经安装了按键回调

fig_h = figure;
set(fig_h,'KeyPressFcn','keypress');
hold on;
imshow(b);

这个回调在我开始缩放之前工作正常。但是在我放大了某个区域后,它会停止调用我的回调。我怎样才能达到预期的行为?谢谢。

【问题讨论】:

    标签: matlab zooming matlab-figure


    【解决方案1】:

    这是一个懒惰的解决方法:

    基本上创建一个按钮,其回调执行与代码中的KeyPressFcn 相同。也就是说,只要您按下按钮,就会执行函数getpts,即使您处于缩放模式。然后你不需要按任何键来激活该功能,只需按一个按钮:

    function  KeyPress(~)
    clc
    clear
    
    %// Test image
    b = imread('peppers.png');
    
    fig_h = figure('Position',[200 200 500 500],'Units','Pixel');
    
    %// Create pushbutton and define its callback
    hButton = uicontrol('style','push','Position',[20 20 60 30],'String','Get Points','Callback',@(s,e) keypressCB)
    
    hold on;
    imshow(b);
    
        function keypressCB       
            [x, y] = getpts(fig_h) 
        end
    
    end
    

    缩放后的屏幕截图,启用getpts

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 2018-11-16
      • 2016-05-07
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多