get a cropped image using mouse click

3 ビュー (過去 30 日間)
mariem farhat
mariem farhat 2015 年 7 月 8 日
コメント済み: mariem farhat 2015 年 7 月 9 日
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 日
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 件のコメント
mariem farhat
mariem farhat 2015 年 7 月 9 日
ok, Thanks. It works

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

カテゴリ

Help Center および File ExchangeData Exploration についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by