我正在尝试在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
答案 0 :(得分:2)
您可以使用图形环境的KeyPressFcn
属性,该属性应设置为回调函数的句柄,该函数接收包含按下的字符的事件结构。有关详细信息和示例,请参阅Matlab documentation。
此外,您可以查看图形环境的CurrentKey
属性,但它不会让您知道何时实际按下该键。