将灰度 uint8 图像转换为 RGB uint8 图像
Convert grayscale uint8 image to RGB uint8 image
我有一个 运行 的代码,它使用 原始图像 和 蒙版图像 。代码假定原始图像是RGB,但我的原始图像是灰度。这一定是我 运行 代码时 MATLAB whos
命令的结果:
Name Size Bytes Class Attributes
mask 308x206 63448 logical
origImg 308x206x3 190344 uint8
遮罩是通过将图像的一部分设为白色而其余部分设为黑色来生成的(在像 windows paint 这样的简单软件中)。
我想使用灰度图像作为 origImg
并从 windows 绘画中的 origImg
生成蒙版,但是 MATLAB 的结果 whos
命令如下,当我想使用我说的具有属性的自定义照片时:
Name Size Bytes Class Attributes
mask 490x640x3 940800 uint8
origImg 490x640 313600 uint8
我必须将 origImage
维度转换为 x3 并从掩码中删除 x3 ,并将其转换class 从 unit8 到 logical。在那种情况下,我认为代码应该可以正常工作。
我应该在这里做什么才能为该目标准备 origImg
和 mask
?
origImg=imread('G:\the_path\to\my_custom\image.png');
mask=imread('G:\the_path\to\my_custom\image_mask.png');
% I have to do something here to make it work.
whos;
% Rest of the code...
我不确定我是否理解正确。
要从 gray-scale 图像制作 RGB 图像,它仍然显示为 gray-scale 图像,您可以使用
origImg = repmat(origImg,1,1,3);
这只是为 RGB 图像的每个通道重复您的 gray-scale 图像。
对于面具,你必须做相反的事情。因为我不知道你的 image_mask.png
文件,所以我假设它是只使用黑白的 RGB 图像。在这种情况下,所有三个通道都是相同的,您可以简单地使用其中一个作为遮罩,无论哪个:
mask = mask(:,:,1);
要将其转换为逻辑,请使用
mask=logical(mask);
我有一个 运行 的代码,它使用 原始图像 和 蒙版图像 。代码假定原始图像是RGB,但我的原始图像是灰度。这一定是我 运行 代码时 MATLAB whos
命令的结果:
Name Size Bytes Class Attributes
mask 308x206 63448 logical
origImg 308x206x3 190344 uint8
遮罩是通过将图像的一部分设为白色而其余部分设为黑色来生成的(在像 windows paint 这样的简单软件中)。
我想使用灰度图像作为 origImg
并从 windows 绘画中的 origImg
生成蒙版,但是 MATLAB 的结果 whos
命令如下,当我想使用我说的具有属性的自定义照片时:
Name Size Bytes Class Attributes
mask 490x640x3 940800 uint8
origImg 490x640 313600 uint8
我必须将 origImage
维度转换为 x3 并从掩码中删除 x3 ,并将其转换class 从 unit8 到 logical。在那种情况下,我认为代码应该可以正常工作。
我应该在这里做什么才能为该目标准备 origImg
和 mask
?
origImg=imread('G:\the_path\to\my_custom\image.png');
mask=imread('G:\the_path\to\my_custom\image_mask.png');
% I have to do something here to make it work.
whos;
% Rest of the code...
我不确定我是否理解正确。
要从 gray-scale 图像制作 RGB 图像,它仍然显示为 gray-scale 图像,您可以使用
origImg = repmat(origImg,1,1,3);
这只是为 RGB 图像的每个通道重复您的 gray-scale 图像。
对于面具,你必须做相反的事情。因为我不知道你的 image_mask.png
文件,所以我假设它是只使用黑白的 RGB 图像。在这种情况下,所有三个通道都是相同的,您可以简单地使用其中一个作为遮罩,无论哪个:
mask = mask(:,:,1);
要将其转换为逻辑,请使用
mask=logical(mask);