Matlab KeyPressFcn具有缩放功能

时间:2015-01-18 17:41:57

标签: matlab zoom matlab-figure

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

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

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

1 个答案:

答案 0 :(得分:1)

这是一个懒惰的解决方法,可以完成这项任务:

基本上创建一个按钮,其回调的执行方式与代码中的KeyPressFcn相同。也就是说,无论何时按下按钮,即使您处于缩放模式,也会执行[{1}}功能。然后您不需要按任何键来激活该功能,而是按下按钮:

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

enter image description here

希望有所帮助!