我有一个图像的R,G,B图像通道,我想连接它们以使用for
循环获得彩色图像。可能吗?
我尝试了类似下面的内容,但它给了我一个错误:
for i=1:3
image=cat(3,img(:,:,i)
end
我已经知道如何在没有使用cat
命令的循环的情况下执行此操作:image=cat(3,imgR,imgG,imgB)
答案 0 :(得分:0)
我在这里没有看到使用循环的一点......它的效率非常低......特别是如果你知道要堆叠多少个图像。你最后在帖子中提到的对cat
的电话绰绰有余。
但是,如果你想让这个工作,你必须指定至少两个矩阵,以便在按顺序使用cat
时连接在一起创建一个新矩阵执行连接。您只指定了一个矩阵,如果您这样做,输出将只是通道本身,如果您使用此代码,您将只提取蓝色通道(最后一个通道)。
如果您想保留为每个频道所做的连接,请改为:
for ii = 1 : 3
image = cat(3, image, img(:,:,ii));
end
这将采用预先存在的变量image
,并将您的矩阵与img
中的每个切片连接起来,并更新变量image
。