get a cropped image using mouse click

8 vues (au cours des 30 derniers jours)
mariem farhat
mariem farhat le 8 Juil 2015
Commenté : mariem farhat le 9 Juil 2015
Hello,
I want to crop an image using coordinates of mouse click. I find a solution with handler function, but the problem is that I can't get results from the function. I used the following code:
function demoOnImageClick (I)
clc;clear;
imObj = imread(I);
disp(size(imObj));
figure;
hAxes = axes();
imageHandle = imshow(imObj);
set(imageHandle,'ButtonDownFcn',@ImageClickCallback);
function coordinates = ImageClickCallback ( objectHandle , eventData )
axesHandle = get(objectHandle,'Parent');
coordinates = get(axesHandle,'CurrentPoint');
coordinates = coordinates(1,1:2);
end
end
Using this code, I can't get coordinates at each click to use them in the imcrop function. What can I do?
  1 commentaire
Guillaume
Guillaume le 8 Juil 2015
Note there is absolutely no point in having clear at the start of a function.

Connectez-vous pour commenter.

Réponses (1)

Guillaume
Guillaume le 8 Juil 2015
The simplest way to get mouse coordinates on your image is to use ginput:
imshow(img);
[columns, rows] = ginput;
But also note that if you call imcrop without specifying the cropping coordinates you get an interactive tool anyway, so I would just do:
[croppedimage, rect] = imcrop(img);
  1 commentaire
mariem farhat
mariem farhat le 9 Juil 2015
ok, Thanks. It works

Connectez-vous pour commenter.

Catégories

En savoir plus sur Images 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!

Translated by