2011-09-21 84 views
1

我试图通过matlab中的一些图像数据进行排序,并希望提示用户输入一系列图像。每次我显示图像时,我想暂停并等待按键,并根据按下的内容执行不同的操作。在查看图形时检测matlab中的按键?

目前最好的解决办法:

responses = zeros(length(images),1); 
for i = 1:length(images) 
    im = imread(images{i}.fname); 
    h = figure(1); 
    imshow(im); 

    % instead of just pause, I want to get the keystroke (k) that was pressed 
    waitforbuttonpress; 
    k = get(h,'CurrentCharacter'); 

    switch lower(k) 
     case 'a' 
      responses(i) = 1; 
     case 'b' 
      responses(i) = 2; 
    end 

end 

回答

2

你可以使用它应该被设置为接收包含按字符事件结构的回调函数的句柄图形环境的KeyPressFcn财产。有关详细信息和示例,请参阅Matlab documentation

您也可以查看图形环境的CurrentKey属性,但它不会让您知道何时按下该按键。