get a cropped image using mouse click

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 件のコメント

Guillaume
Guillaume 2015 年 7 月 8 日
Note there is absolutely no point in having clear at the start of a function.

サインインしてコメントする。

回答 (1 件)

Guillaume
Guillaume 2015 年 7 月 8 日

3 投票

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);

カテゴリ

ヘルプ センター および File ExchangeData Exploration についてさらに検索

質問済み:

2015 年 7 月 8 日

コメント済み:

2015 年 7 月 9 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by