フィルターのクリア

imrect not visible after updating an image

1 回表示 (過去 30 日間)
Donald Liu
Donald Liu 2017 年 7 月 14 日
コメント済み: Walter Roberson 2017 年 7 月 15 日
Refer to the script below:
f = figure;
im = image(rand(200, 100, 3));
roi = imrect(gca, [5, 10, 40, 30]);
title('ROI visible');
pause;
hold('on');
image(rand(200, 100, 3));
title('ROI not visible, how to make it visible again?');
At this point, roi still exists but is no longer visible. You can still run get(roi), for instance. How to make it visible again?
Thanks!

採用された回答

Walter Roberson
Walter Roberson 2017 年 7 月 14 日
uistack(roi, 'top')
  3 件のコメント
Walter Roberson
Walter Roberson 2017 年 7 月 14 日
Hmmm.
old_warning_state = warning('MATLAB:structOnObject', 'off');
roi_struct = struct(roi);
warning(old_warning_state);
uistack(roi_struct.h_group, 'top');
Donald Liu
Donald Liu 2017 年 7 月 15 日
This worked, with a minor change: old_warning_state = warning('off', 'MATLAB:structOnObject');
Thanks!

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

その他の回答 (1 件)

Image Analyst
Image Analyst 2017 年 7 月 14 日
You can get the coordinates and then use plot() to plot the box whenever you want. See this demo:
im = image(rand(200, 100, 3));
axis on;
hBox = imrect;
roiPosition = wait(hBox);
roiPosition % Echo coordinates to the command window.
xCoords = [roiPosition(1), roiPosition(1)+roiPosition(3), roiPosition(1)+roiPosition(3), roiPosition(1), roiPosition(1)];
yCoords = [roiPosition(2), roiPosition(2), roiPosition(2)+roiPosition(4), roiPosition(2)+roiPosition(4), roiPosition(2)];
% Plot the mask as an outline over the image.
hold on;
plot(xCoords, yCoords, 'linewidth', 2);
title('ROI visible');
% Update image
hold off;
grayImage = imread('moon.tif'); % Note, this is a different size.
imshow(grayImage);
hold on;
axis on;
plot(xCoords, yCoords, 'linewidth', 2); % Plots with original units and size.
title('ROI visible on updated image');
  5 件のコメント
Image Analyst
Image Analyst 2017 年 7 月 15 日
I didn't know that imrect would constantly send out position information. I thought you had to double click inside it to learn the position. How did you get it to send out instantaneous position information as you both change images and change box size and location?
Walter Roberson
Walter Roberson 2017 年 7 月 15 日
imrect has a getPosition method.

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by