首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将灰度uint8图像转换为RGB uint8图像

将灰度uint8图像转换为RGB uint8图像
EN

Stack Overflow用户
提问于 2019-07-03 19:27:08
回答 1查看 534关注 0票数 0

我有一个代码要运行,它使用原始图像掩码图像。代码假定原始图像是RGB,但我的原始图像是灰度。这必须是运行代码时MATLAB whos命令的结果:

代码语言:javascript
复制
Name           Size                Bytes  Class      Attributes

mask         308x206               63448  logical              
origImg      308x206x3            190344  uint8                

面具是通过使图像的一部分变成白色,其余的是黑色(在一个简单的软件,如windows油漆)。

我希望使用灰度图像作为origImg,并从origImg中生成窗口涂料中的掩码,但是当我想使用带有属性的自定义照片时,MATLAB whos命令的结果如下所示:

代码语言:javascript
复制
Name           Size                Bytes  Class    Attributes

mask         490x640x3            940800  uint8              
origImg      490x640              313600  uint8              

我必须将origImage维度转换为x3,从掩码中删除x3,并将其类从unit8转换为逻辑。在这种情况下,我认为代码应该正常工作。

为了达到这个目标,我应该做些什么来为origImgmask做好准备?

代码语言:javascript
复制
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...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-03 22:10:10

我不确定我是否正确地理解了你。

若要从仍然显示为灰度图像的灰度图像中生成RGB图像,可以使用

代码语言:javascript
复制
origImg = repmat(origImg,1,1,3);

它只会重复RGB图像的每一个通道的灰度图像。

对于面具,你必须做相反的事情。因为我不知道您的image_mask.png文件,所以我假设它是一个只使用黑白的RGB图像。在这种情况下,所有三个通道都是相同的,您可以简单地使用其中一个作为掩码,而不管哪个通道:

代码语言:javascript
复制
mask = mask(:,:,1);

若要将其转换为逻辑,请使用

代码语言:javascript
复制
mask=logical(mask);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56876788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档