【问题标题】:Add the three channels in a image to obtain a color image MATLAB将图像中的三个通道相加得到彩色图像MATLAB
【发布时间】:2014-01-24 09:56:59
【问题描述】:

我在 matlab 中修改图片,遇到了问题。

我需要将3个颜色通道分开,分别修改。

我用这个来获取三个通道:

 a = imread('./images/penguins.png');
colorlist = {'R','G','B'};    
subplot(2,2,1);
imshow(a);
for k=1:3
    subplot(2,2,k+1);
    imshow( a(:,:,k));
    title(colorlist{k});
end

a(:,:,k) 是三种颜色中的一种。问题是当我将三个向量合二为一时,以获得彩色图像。我这样做:

 A=a(:,:,1)+a(:,:,2)+a(:,:,3)
figure; imshow(A);

但它不起作用,它只显示一个非常突出的图像,没有彩色图像。

谁知道如何恢复彩色图像?谢谢你的帮助^^

【问题讨论】:

    标签: image matlab image-processing colors


    【解决方案1】:

    您正在添加三个图层的值,而不是将它们连接到 3D 数组中。

    试试这个:

    A= cat(3, a(:,:,1), a(:,:,2), a(:,:,3));
    

    我还要注意,你可以简单地通过索引来编辑图层,比如你想切换红色和绿色组件:

    I1 = imread('http://i.stack.imgur.com/1KyJA.jpg');
    I2=I1;
    I2(:,:,1)=I1(:,:,2);
    I2(:,:,2)=I1(:,:,1);
    imshowpair(I1,I2, 'montage');
    

    现在,如果我按字面意思理解您的标题,假设您确实想要添加三个图层并使用颜色图显示结果,您可以这样做:

    A=a(:,:,1)+a(:,:,2)+a(:,:,3)
    imagesc(A); axis image; 
    colorbar;
    

    结果:

    【讨论】:

      猜你喜欢
      • 2017-07-14
      • 2015-01-31
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-09-11
      • 1970-01-01
      • 2011-11-08
      相关资源
      最近更新 更多