将RGB通道与'

时间:2016-02-16 18:05:02

标签: image matlab rgb

我有一个图像的R,G,B图像通道,我想连接它们以使用for循环获得彩色图像。可能吗?

我尝试了类似下面的内容,但它给了我一个错误:

for i=1:3
   image=cat(3,img(:,:,i)
end

我已经知道如何在没有使用cat命令的循环的情况下执行此操作:image=cat(3,imgR,imgG,imgB)

1 个答案:

答案 0 :(得分:0)

我在这里没有看到使用循环的一点......它的效率非常低......特别是如果你知道要堆叠多少个图像。你最后在帖子中提到的对cat的电话绰绰有余。

但是,如果你想让这个工作,你必须指定至少两个矩阵,以便在按顺序使用cat时连接在一起创建一个新矩阵执行连接。您只指定了一个矩阵,如果您这样做,输出将只是通道本身,如果您使用此代码,您将只提取蓝色通道(最后一个通道)。

如果您想保留为每个频道所做的连接,请改为:

for ii = 1 : 3
    image = cat(3, image, img(:,:,ii));
end

这将采用预先存在的变量image,并将您的矩阵与img中的每个切片连接起来,并更新变量image