Manual object counter inside an image
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
Hi
How can I program a very simple manual counter on top of an image that I show (GUI). Basically, I wish to load an image to a axes and every time I click the mouse a point and its counting number appears next to it.
Thanks.
0 个评论
采纳的回答
  Image Analyst
      
      
 2014-1-6
        From the help:
[x,y] = ginput gathers an unlimited number of points until you press the Return key.
Put some code in like this (untested)
message = sprintf('Click points.\nHit return when done.');
button = questdlg(message, 'Continue?', 'Yes', 'No', 'Yes');
drawnow;  % Refresh screen to get rid of dialog box remnants.
if strcmpi(button, 'No')
   return;
end
[x,y] = ginput();
count = length(x);
3 个评论
  Image Analyst
      
      
 2014-1-6
				
      编辑:Image Analyst
      
      
 2014-1-6
  
			Only after it's done when you can say
plot(x, y, 'r+', 'MarkerSize', 24, 'LineWidth', 3);
If you want it to mark after each one you'll have to put ginput(1) inside a while loop
% Display an image.
imshow('moon.tif');
hold on;
% Initialize counter.
count = 0;
message = sprintf('Click as many points as you want.\nHit return when done.');
title(message, 'FontSize', 20);
button = questdlg(message, 'Continue?', 'OK', 'Cancel', 'OK');
drawnow;  % Refresh screen to get rid of dialog box remnants.
if strcmpi(button, 'Cancel')
  return;
end
% Begin loop where user clicks points over display (plot or image or whatever).
while count < 1000 % or whatever failsafe you want.
  % User clicks one point.  If user types Enter/Return, x is empty.
  [x,y] = ginput(1);
  if isempty(x)
    break;
  end
  % Put a cross over the point.
  plot(x, y, 'r+', 'MarkerSize', 24, 'LineWidth', 3);
  % Increment the count.
  count = count + 1
  % Save coordinates (if desired).
  allX(count) = x;
  allY(count) = y;
end
Please mark as Accepted if this answers your question.
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Data Exploration 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

