2017-01-18 6 views
1

Я хочу щелкнуть/дважды щелкнуть по изображению и начать impoly. Что-то вроде:Интерактивный щелчок мышью по области изображения в графическом интерфейсе MATLAB

if(user perform 'doubleclick' on the image in image area (matlab gui)) 
    % polygon start to create 
    bw = impoly... 
end 

Я хотел бы создать больше полигонов на изображении (один за другим).

+0

Не могли бы вы добавить больше информации и разместить код у вас есть для этого вопроса на руку? Поскольку ваш вопрос трудно понять. – buzjwa

+0

Уже обновлено. –

+0

Использование 'impoly' - хорошая идея. Отправьте решение, которое у вас есть прямо сейчас, и объясните проблемы, которые у вас есть. Узнайте, как использовать свойство 'buttonDownFcn' [axes] (https://www.mathworks.com/help/matlab/ref/axes-properties.html). – buzjwa

ответ

2

Обычно вы можете обнаружить любое взаимодействие мыши с изображением, используя ButtonDownFcn объекта изображения. Вы можете затем (в пределах этого обратного вызова) проверить SelectionType свойство родительского рисунка, чтобы определить, какой тип мыши он был

h = imshow(rand(100)); 

% Setup callback function for mouse events on the image 
set(h, 'ButtonDownFcn', @my_callback) 

function my_callback(src, evnt) 

    % Get the selection type 
    type = get(gcbf, 'SelectionType'); 

    % If it was a double click.... 
    if strcmpi(type, 'open') 
     bw = impoly(...); 
    end 
end