ginput: How to prompt for value after each click?
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I'm making a little program that loads a photo then calls ginput so I can click on a number of features. For each feature, I want to enter an estimated value.
Click Prompt: Enter thickness: Enter Value
Click Prompt:
etc
Is there anyway to do this?
Thanks,
Cole
0 commentaires
Réponse acceptée
Image Analyst
le 28 Sep 2014
For the thickness prompt, try inputdlg().
To get the points, try getpts() if you have the Image Processing Toolbox. Or just put
[x,y] = ginput(1)
into a while loop where you break out of the while loop if the user clicks the right mouse button. Try this:
clc;
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
fontSize = 24;
imshow('cameraman.tif');
hold on;
maxAllowablePoints = 5; % Whatever you want.
numPointsClicked = 0;
promptMessage = sprintf('Left click up to %d points.\nRight click when done.', maxAllowablePoints);
titleBarCaption = 'Continue?';
button = questdlg(promptMessage, titleBarCaption, 'Continue', 'Cancel', 'Continue');
if strcmpi(button, 'Cancel')
return;
end
while numPointsClicked < maxAllowablePoints
numPointsClicked = numPointsClicked + 1;
[x(numPointsClicked), y(numPointsClicked), button] = ginput(1)
plot(x(numPointsClicked), y(numPointsClicked), 'r+', 'MarkerSize', 15);
if button == 3
% Exit loop if
break;
end
end
% Print to command window
x
y
msgbox('Done collecting points');
0 commentaires
Plus de réponses (1)
Cole
le 28 Sep 2014
1 commentaire
Image Analyst
le 28 Sep 2014
Modifié(e) : Image Analyst
le 29 Sep 2014
There is also a getpts() in the Image Processing Toolbox you may want to take a look at.
Voir également
Catégories
En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!