Обнаружить нажатие клавиши в Matlab при просмотре фигуры? - PullRequest
1 голос
/ 21 сентября 2011

Я пытаюсь отсортировать некоторые данные изображения в 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

1 Ответ

2 голосов
/ 21 сентября 2011

Вы можете использовать свойство KeyPressFcn среды рисунка, которое должно быть установлено в дескриптор функции обратного вызова, которая получает структуру события, содержащую нажатый символ. Подробности см. В документации Matlab .

Также вы можете посмотреть на свойство CurrentKey окружения фигуры, но оно не даст вам способа узнать, когда клавиша фактически нажата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...