Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在其他图像的顶部添加覆盖图像_Image_Matlab_Image Processing_Image Segmentation - Fatal编程技术网

Image 在其他图像的顶部添加覆盖图像

Image 在其他图像的顶部添加覆盖图像,image,matlab,image-processing,image-segmentation,Image,Matlab,Image Processing,Image Segmentation,假设我有一个RGB图像RGB和一个包含图像RGB分割结果的二进制图像binary。如何在图像“RGB”上方绘制图像二进制,并将分割显示为红色透明区域?我尝试了以下方法,但出现了一个错误。请帮我找出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, 'Alph

假设我有一个RGB图像
RGB
和一个包含图像
RGB
分割结果的二进制图像
binary
。如何在图像“RGB”上方绘制图像
二进制
,并将分割显示为红色透明区域?我尝试了以下方法,但出现了一个错误。请帮我找出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

以下是在遮罩的选定区域添加红色覆盖的方法。可以对这些脚本进行修改,用白色或黑色填充其余区域。使用逻辑阵列选择遮罩上的感兴趣区域

将红色覆盖在遮罩的白色区域上

将红色覆盖在遮罩的黑色区域上


如果您有图像处理工具箱,此函数将执行您想要的操作:


有没有可能发布输入图像?@MichaelTr7 posted但这不会创建一个透明的红色覆盖层这是真的,但alpha就是这样工作的。如果要单独调制RGB通道,则需要相应地计算图像,例如:I(:,:,1)=I(:,:,1)。*alpha_R+背景。*(1-alpha_R)用于红色通道,类似于其他通道。如果您只需要红色通道,可以在应用单层alpha之前执行I(:,:,2:3)=0。这是一个很棒的解决方案!!!我不知道那是真的。
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');