How can I save ROI parameters from DrawFreehand and load it onto another image?
25 ビュー (過去 30 日間)
古いコメントを表示
I'm working on a programme that analyses the contents within an ROI (such as Mean Grey Intensity). The images i want to measure are not clear enough to draw an ROI, but I have an image that is the same size (160x160px) and I would like to draw the ROI on that image and then display that ROI on the other images. I have the images uploaded in "axes" in the app designer. Any help is appreciated.
2 件のコメント
Image Analyst
2021 年 2 月 20 日
Don't you have the variable from drawfreehand()? How did it disappear? Did it go out of scope? If so, save it to a .mat file. Show us how you call it.
採用された回答
Image Analyst
2021 年 2 月 20 日
Here is what I do:
% User draws curve on image here.
hFH = drawfreehand();
% Get the xy coordinates of where they drew.
xy = hFH.Position
% get rid of imfreehand remnant.
delete(hFH);
% Overlay what they drew onto the image.
hold on; % Keep image, and direction of y axis.
xCoordinates = xy(:, 1);
yCoordinates = xy(:, 2);
plot(xCoordinates, yCoordinates, 'r.', 'LineWidth', 2, 'MarkerSize', 12);
caption = sprintf('Original Grayscale Image.\nPoints may not lie on adjacent pixels, depends on your speed of drawing!');
title(caption, 'FontSize', fontSize);
See attached full demo. Once you have xCoordinates and yCoordinates, you can save them and apply them to other images, for example by using them to create a mask with poly2mask().
2 件のコメント
Image Analyst
2021 年 2 月 23 日
If you want to create a new RGB image with the mask displayed "burned" into the image, see imoverlay. Otherwise if you want it in the overlay, see these links:
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!