在其他图像之上添加叠加图像
Add overlay image on top of other image
假设我有一个 RGB 图像 RGB
和一个包含图像 RGB
分割结果的二值图像 binary
。如何在图像“RGB”之上绘制图像 binary
并将分割显示为红色透明区域?我尝试了以下但出现错误。请帮助我找出 MATLAB 中的最佳方法
I=imread('RGB.png');
[M,N,C] = size(I);
h=imshow(I);
alpha= imread('binary.png');
alpha = cat(3,alpha,zeros(M,N), zeros(M,N));
set(h, 'AlphaData', alpha);
这是输入图像:
您只需将二进制 alpha
(仅一层)用作 AlphaData
。
这是一种在蒙版的 select 区域添加红色叠加层的方法。可以对这些脚本进行修改,以用白色或黑色填充剩余区域。使用逻辑数组 select 对掩模上的感兴趣区域进行编辑。
在遮罩的白色区域上叠加红色
Overlay_Opacity = 0.5;
Image =imread('RGB.png');
imshow(Image);
Red_Channel = imread('binary.png');
White_Mask_Region = Overlay_Opacity*(Red_Channel ~= 0);
Overlay_Image(:,:,1) = White_Mask_Region;
Overlay_Image(:,:,2) = 0;
Overlay_Image(:,:,3) = 0;
hold on
Overlay = image(Overlay_Image);
Overlay.AlphaData = White_Mask_Region;
saveas(gcf,'Overlay_1.png');
在遮罩的黑色区域上叠加红色
Overlay_Opacity = 0.5;
Image =imread('RGB.png');
imshow(Image);
Red_Channel = imread('binary.png');
Black_Mask_Region = Overlay_Opacity*(Red_Channel == 0);
Overlay_Image(:,:,1) = Black_Mask_Region;
Overlay_Image(:,:,2) = 0;
Overlay_Image(:,:,3) = 0;
hold on
Overlay = image(Overlay_Image);
Overlay.AlphaData = Black_Mask_Region;
saveas(gcf,'Overlay_2.png');
如果您有图像处理工具箱,此函数将执行您想要的操作:
假设我有一个 RGB 图像 RGB
和一个包含图像 RGB
分割结果的二值图像 binary
。如何在图像“RGB”之上绘制图像 binary
并将分割显示为红色透明区域?我尝试了以下但出现错误。请帮助我找出 MATLAB 中的最佳方法
I=imread('RGB.png');
[M,N,C] = size(I);
h=imshow(I);
alpha= imread('binary.png');
alpha = cat(3,alpha,zeros(M,N), zeros(M,N));
set(h, 'AlphaData', alpha);
这是输入图像:
您只需将二进制 alpha
(仅一层)用作 AlphaData
。
这是一种在蒙版的 select 区域添加红色叠加层的方法。可以对这些脚本进行修改,以用白色或黑色填充剩余区域。使用逻辑数组 select 对掩模上的感兴趣区域进行编辑。
在遮罩的白色区域上叠加红色
Overlay_Opacity = 0.5;
Image =imread('RGB.png');
imshow(Image);
Red_Channel = imread('binary.png');
White_Mask_Region = Overlay_Opacity*(Red_Channel ~= 0);
Overlay_Image(:,:,1) = White_Mask_Region;
Overlay_Image(:,:,2) = 0;
Overlay_Image(:,:,3) = 0;
hold on
Overlay = image(Overlay_Image);
Overlay.AlphaData = White_Mask_Region;
saveas(gcf,'Overlay_1.png');
在遮罩的黑色区域上叠加红色
Overlay_Opacity = 0.5;
Image =imread('RGB.png');
imshow(Image);
Red_Channel = imread('binary.png');
Black_Mask_Region = Overlay_Opacity*(Red_Channel == 0);
Overlay_Image(:,:,1) = Black_Mask_Region;
Overlay_Image(:,:,2) = 0;
Overlay_Image(:,:,3) = 0;
hold on
Overlay = image(Overlay_Image);
Overlay.AlphaData = Black_Mask_Region;
saveas(gcf,'Overlay_2.png');
如果您有图像处理工具箱,此函数将执行您想要的操作: