Image 将RGB通道与循环';对于';

Image 将RGB通道与循环';对于';,image,matlab,rgb,Image,Matlab,Rgb,我有一个图像的R、G、B图像通道,我想用for循环将它们连接起来以获得彩色图像。可能吗 我尝试了下面这样的方法,但它给了我一个错误: for i=1:3 image=cat(3,img(:,:,i) end 我已经知道如何在没有循环的情况下使用命令cat:image=cat(3,imgR,imgG,imgB)我看不出在这里使用循环有什么意义。。。这是非常低效的。。。特别是如果您知道要叠加多少图像。正如你在文章最后提到的那样,调用cat,已经足够了 但是,如果要使其正常工作,必须指定至少两

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

我尝试了下面这样的方法,但它给了我一个错误:

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

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

我看不出在这里使用循环有什么意义。。。这是非常低效的。。。特别是如果您知道要叠加多少图像。正如你在文章最后提到的那样,调用
cat
,已经足够了

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

如果要保留为每个通道进行的连接,请执行以下操作:

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

这将获取预先存在的变量
image
,将矩阵与
img
中的每个片段连接起来,并更新变量
image

,我看不到使用for循环的任何实际可能性。您已有的解决方案有什么问题?嗯,它会给您一个错误,因为您没有足够的右括号,但您也有一个逻辑错误,因为您每次只是覆盖图像。为什么要使用for循环?我正在研究彩色图像水印,我给每一个颜色通道加水印,所以我没有对每个通道使用3个相同过程的函数,而是使用一个循环来应用相同的一个函数,然后我想把它们连接起来,得到我的彩色图像加水印