How to highlight a area in figure

5 次查看(过去 30 天)
I want to hightlight the defect in croppedImage.mat by convHull.mat.
It's better set transparent.
the size of two figures is same.
  3 个评论
xie
xie 2025-1-22
编辑:xie 2025-1-22
Sorry, I have no idea to combine these two attached figures.
xie
xie 2025-1-22
maskedImage = croppedImage;
maskedImage(convHull) =0;
imshow(maskedImage)
But I want to change the black portion to transparent. I have no idea. Could you help me?

请先登录,再进行评论。

采纳的回答

prabhat kumar sharma
移动:Mathieu NOE 2025-1-22
To highlight an area in a figure and make it transparent, you can use the alpha data property in MATLAB. Here's a step-by-step guide to achieve this:
  1. Load your data: First, load your croppedImage and convHull data.
  2. Create a mask: Use the convHull to create a mask that identifies the region you want to highlight.
  3. Display the image with transparency: Use the imshow function with the 'AlphaData' property to make the highlighted area transparent.
Here's an example code snippet:
% Load the data
load('croppedImage.mat'); % Assuming this loads a variable named croppedImage
load('convHull.mat'); % Assuming this loads a variable named convHull
% Display the original image
imshow(croppedImage);
hold on;
% Create a mask for the highlighted area
highlightMask = false(size(croppedImage));
highlightMask(convHull) = true;
% Overlay the highlighted area with transparency
h = imshow(croppedImage);
set(h, 'AlphaData', ~highlightMask); % Set the non-highlighted part to transparent
% Optional: Add a color to the highlighted area
highlightedArea = imshow(cat(3, ones(size(croppedImage)), zeros(size(croppedImage)), zeros(size(croppedImage))));
set(highlightedArea, 'AlphaData', highlightMask * 0.5); % Adjust transparency level

更多回答(2 个)

Image Analyst
Image Analyst 2025-1-23
You can try imoverlay to make the mask overlaid on the image, or you can use plot to plot a red outline at the mask perimeter location in the image.
  2 个评论
Image Analyst
Image Analyst 2025-1-24
imoverlay gives opaque overlays. labeloverlay can give transparent/tinted overlays.

请先登录,再进行评论。


xie
xie 2025-1-23
移动:Walter Roberson 2025-1-23
Maybe I got the simple method: labeloverlay function can meet my request.
imshow(labeloverlay(croppedImage,convHull, 'Colormap','spring','Transparency',0.7));
thank you all!

Community Treasure Hunt

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

Start Hunting!

Translated by